package com.teotigraphix.caustic.mediator;
import com.teotigraphix.caustic.model.ICaustkModel;
/**
* The mediator listens to model and application events, updates it's managed
* user interface accordingly.
* <p>
* Mediator startup phase;
* <ul>
* <li>{@link #onRegisterObservers()}</li>
* <li>{@link #onRegister()}</li>
* </ul>
* The mediator's {@link #onRegister()} is called after all model's have been
* registered.
*/
public interface ICaustkMediator {
/**
* Called before the application controller has it's start() invoked.
* <p>
* Register all application and model events.
* <p>
* All injections are complete and access to framework and application
* models are non <code>null</code>.
* <p>
* The main application and project state has not been loaded yet.
*/
void onRegisterObservers();
/**
* Access to framework and application state will be non <code>null</code>.
* <p>
* The {@link #onRegister()} method is called after the
* {@link ICaustkModel#onRegister()}.
* <p>
* Register all user interface component listeners.
*/
void onRegister();
}