package com.teotigraphix.caustk.application;
import org.androidtransfuse.event.EventObserver;
import com.teotigraphix.caustk.controller.ICaustkController;
import com.teotigraphix.caustk.project.IProjectManager.OnProjectManagerChange;
import com.teotigraphix.caustk.project.IProjectManager.ProjectManagerChangeKind;
// Mediators never dispatch events!, only listen and act with logic
// that could eventually be put in a Command
public class MediatorBase {
private ICaustkController controller;
public final ICaustkController getController() {
return controller;
}
// protected IDispatcher getDispatcher() {
// return controller.getDispatcher();
// }
//--------------------------------------------------------------------------
// Constructor
//--------------------------------------------------------------------------
// @Inject
public MediatorBase(ICaustkApplicationProvider provider) {
controller = provider.get().getController();
controller.getDispatcher().register(OnProjectManagerChange.class,
new EventObserver<OnProjectManagerChange>() {
@Override
public void trigger(OnProjectManagerChange object) {
if (object.getKind() == ProjectManagerChangeKind.CREATE) {
onProjectCreate();
} else if (object.getKind() == ProjectManagerChangeKind.LOAD) {
onProjectLoad();
} else if (object.getKind() == ProjectManagerChangeKind.SAVE) {
onProjectSave();
} else if (object.getKind() == ProjectManagerChangeKind.SAVE_COMPLETE) {
}
}
});
}
public void initialize() {
}
public void onRegister() {
}
protected void onProjectSave() {
}
protected void onProjectLoad() {
}
protected void onProjectCreate() {
}
}