public class EventHandler extends AbstractEventHandler {
private static CLogger log = CLogger.getCLogger(EventHandler.class);
public EventHandler() {
// TODO Auto-generated constructor stub
}
@Override
protected void initialize() {
registerEvent(IEventTopics.AFTER_LOGIN);
registerTableEvent(IEventTopics.PO_AFTER_CHANGE, I_AD_UserPreference.Table_Name);
}
protected void doHandleEvent(Event event) {
if (event.getTopic().equals(IEventTopics.AFTER_LOGIN)){
setupUserPreferences();
} else if (event.getTopic().equals(IEventTopics.PO_AFTER_CHANGE)){
setupUserPreferences();
//PO po = getPO(event);
//log.info(" topics="+event.getTopic()+" po="+po); }
};
void setupUserPreferences(){
// Add AD_UserPreferences to the context:
Map<String,Object> newEntries = new HashMap<String, Object>();
for (Entry<Object,Object> entry : Env.getCtx().entrySet()){
String key = (String)entry.getKey();
if (key.startsWith("P|")){
String splitter[] = key.split("[|]");
newEntries.put("#UserPreference_"+splitter[1], entry.getValue());
}
}
for (Entry<String,Object> entry : newEntries.entrySet()){
if (entry.getValue() instanceof String){
Env.setContext(Env.getCtx(), entry.getKey(), (String)entry.getValue());
} else if (entry.getValue() instanceof Integer) {
Env.setContext(Env.getCtx(), entry.getKey(), (Integer)entry.getValue());
} else if (entry.getValue() instanceof Boolean) {
Env.setContext(Env.getCtx(), entry.getKey(), (Boolean)entry.getValue());
} else if (entry.getValue() instanceof Timestamp) {
Env.setContext(Env.getCtx(), entry.getKey(), (Timestamp)entry.getValue());
}
}
}
}