package controller;
import config.AppConfig;
import config.Translation;
import java.util.*;
import java.io.*;
import com.ibm.xsp.extlib.util.ExtLibUtil;
import frostillicus.xsp.controller.BasicXPageController;
import frostillicus.xsp.util.FrameworkUtils;
public class appconfig extends BasicXPageController {
private static final long serialVersionUID = 1L;
@Override
public void beforePageLoad() throws Exception {
super.beforePageLoad();
Map<String, Object> configData = new TreeMap<String, Object>(String.CASE_INSENSITIVE_ORDER);
AppConfig appConfig = AppConfig.get();
for(String key : appConfig.keySet()) {
configData.put(key, appConfig.getValue(key));
}
if(!configData.containsKey("aliases") || "".equals(configData.get("aliases"))) {
configData.put("aliases", new ArrayList<Map<String, Object>>());
}
FrameworkUtils.getViewScope().put("appConfigData", configData);
}
@Override
@SuppressWarnings("unchecked")
public String save() throws IOException {
Map<String, Object> viewScope = ExtLibUtil.getViewScope();
Map<String, Object> appConfigData = (Map<String, Object>)viewScope.get("appConfigData");
AppConfig appConfig = AppConfig.get();
for(Map.Entry<String, Object> configEntry : appConfigData.entrySet()) {
appConfig.setValue(configEntry.getKey(), configEntry.getValue());
}
appConfig.save();
FrameworkUtils.flashMessage("confirmation", Translation.get().getValue("configChangeConfirmation"));
return "xsp-success";
}
/* ******************************************************************************
* Aliases
********************************************************************************/
@SuppressWarnings("unchecked")
public List<Map<String, Object>> getAliases() {
Map<String, Object> viewScope = FrameworkUtils.getViewScope();
Map<String, Object> appConfigData = (Map<String, Object>)viewScope.get("appConfigData");
return (List<Map<String, Object>>)appConfigData.get("aliases");
}
public void addAlias() {
getAliases().add(new HashMap<String, Object>());
}
public void removeAlias() {
int index = (Integer)FrameworkUtils.resolveVariable("aliasIndex");
getAliases().remove(index);
}
public void moveAliasUp() {
int index = (Integer)FrameworkUtils.resolveVariable("aliasIndex");
Collections.swap(getAliases(), index, index-1);
}
public void moveAliasDown() {
int index = (Integer)FrameworkUtils.resolveVariable("aliasIndex");
Collections.swap(getAliases(), index, index+1);
}
}