package com.teotigraphix.caustic.screen; import java.util.HashMap; import java.util.Map; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.Singleton; import com.teotigraphix.caustic.mediator.MediatorBase; import com.teotigraphix.caustk.core.CtkDebug; /* The main appp is composed of a Screen view stack. This manager is responsible for managing the layers creation, visibility, destruction. */ @Singleton public class ScreenManager extends MediatorBase implements IScreenManager { Map<Class<? extends IScreenView>, IScreenView> stack = new HashMap<Class<? extends IScreenView>, IScreenView>(); @Inject Injector injector; @Override public <T> void create(T root) { for (IScreenView view : stack.values()) { view.create(root); } } @Override public void onRegisterObservers() { super.onRegisterObservers(); for (IScreenView view : stack.values()) { CtkDebug.log(" Register " + view.getClass().getSimpleName()); view.onRegisterObservers(); } } @Override public void addScreen(Class<? extends IScreenView> type) { IScreenView instance = injector.getInstance(type); stack.put(type, instance); } @Override public void showPopUp(Class<? extends IScreenView> type) { IScreenView view = stack.get(type); view.getScreenRoot().show(); } @Override public void hidePopUp(Class<? extends IScreenView> type) { IScreenView view = stack.get(type); view.getScreenRoot().hide(); } @Override public void onRegister() { // TODO Auto-generated method stub } }