package origo.helpers;
import models.origo.core.Settings;
import models.origo.core.SettingsKeys;
import models.origo.core.navigation.BasicNavigation;
import play.Logger;
public class SettingsHelper {
public static class Core {
public static String getBaseUrl() {
return Settings.load().getValue(SettingsKeys.Core.BASE_URL);
}
public static String getStartPage() {
return Settings.load().getValue(SettingsKeys.Core.START_PAGE);
}
public static String getPageNotFoundPage() {
return Settings.load().getValue(SettingsKeys.Core.PAGE_NOT_FOUND_PAGE);
}
public static String getInternalServerErrorPage() {
return Settings.load().getValue(SettingsKeys.Core.INTERNAL_SERVER_ERROR_PAGE);
}
public static String getThemeVariant() {
return Settings.load().getValue(SettingsKeys.Core.THEME_VARIANT);
}
public static String getNavigationType() {
return SettingsHelper.getNavigationType(SettingsKeys.Core.NAVIGATION_TYPE);
}
public static String getDefaultFormProviderType() {
return Settings.load().getValue(SettingsKeys.Core.DEFAULT_FORM_TYPE);
}
public static String getSubmitHandler() {
return Settings.load().getValue(SettingsKeys.Core.SUBMIT_HANDLER);
}
}
public static class Admin {
public static String getThemeVariant() {
return Settings.load().getValue(SettingsKeys.Admin.THEME_VARIANT);
}
public static String getNavigationType() {
return SettingsHelper.getNavigationType(SettingsKeys.Admin.NAVIGATION_TYPE);
}
public static String getDashboardType() {
return Settings.load().getValue(SettingsKeys.Admin.DASHBOARD_TYPE);
}
public static String getEditorType() {
return Settings.load().getValue(SettingsKeys.Admin.RICHTEXT_EDITOR_TYPE);
}
}
private static String getNavigationType(String settingName) {
String navigationType = Settings.load().getValue(settingName);
if (navigationType != null) {
try {
return Class.forName(navigationType).getName();
} catch (ClassNotFoundException e) {
Logger.error("Unable to find navigation type [" + navigationType + "], using system default navigation type instead");
}
}
return BasicNavigation.class.getName();
}
}