package br.com.etyllica.awt.engine;
import java.awt.Component;
import java.util.HashSet;
import java.util.Set;
import br.com.etyllica.awt.core.AWTCore;
import br.com.etyllica.core.Engine;
import br.com.etyllica.core.context.Session;
import br.com.etyllica.core.event.GUIEvent;
import br.com.etyllica.loader.FontLoader;
import br.com.etyllica.loader.Loader;
import br.com.etyllica.loader.image.ImageLoader;
/**
* AWTEngine is an Engine based on AWT
* @author yuripourre
*
*/
public class AWTEngine implements Engine {
private AWTCore core;
private Set<Loader> loaders = new HashSet<Loader>();
public AWTEngine(Component component, int w, int h) {
super();
core = new AWTCore(component, w, h);
}
public void updateSuperEvent(GUIEvent event) {
if (event == GUIEvent.ENABLE_FULL_SCREEN) {
core.enableFullScreen();
} else if (event == GUIEvent.DISABLE_FULL_SCREEN) {
core.disableFullScreen();
}
else if (event == GUIEvent.REQUEST_FOCUS) {
if ( !core.getComponent().hasFocus() ) {
core.getComponent().requestFocus();
}
}
}
public AWTCore getCore() {
return core;
}
public void init() {
initLoaders();
core.initDefault();
}
public void initLoaders() {
addLoader(ImageLoader.getInstance());
addLoader(FontLoader.getInstance());
core.setLoaders(loaders);
}
public Set<Loader> getLoaders() {
return loaders;
}
public void addLoader(Loader loader) {
loaders.add(loader);
}
public void hideCursor() {
core.hideCursor();
}
}