import java.util.*;

public class Main {
	private ScreenTemplates screenTemplates;
	private Screen screen;
	private CurScreen curScreen;
	public Main() {
		this.screenTemplates = new ScreenTemplates(curScreen);
		this.curScreen = new CurScreen(screen, screenTemplates);
		this.screen = new Screen(screenTemplates, true, curScreen);
	}
	public Map<String, Object> getWidget(String wid) {
		return this.screen.getWidgets().getWidget(wid).getValue();
	}
	public Map<String, Object> getScreenTemplate(String scId) {
		return this.screenTemplates.getScreenTemplate(scId).getValue();
	}
	public Map<String, Widget> getWidgets() {
		return this.screen.getWidgets().getValue();
	}
	public Map<String, Object> getWidget1(String scId, String wid) {
		return this.screenTemplates.getScreenTemplate(scId).getWidgets1().getWidget1(wid).getValue();
	}
	public Map<String, Widget1> getWidgets1(String scId) {
		return this.screenTemplates.getScreenTemplate(scId).getWidgets1().getValue();
	}
	public Map<String, ScreenTemplate> getScreenTemplates() {
		return this.screenTemplates.getValue();
	}
	public Map<String, Object> getScreen() {
		return this.screen.getValue();
	}
	public String getCurScreen() {
		return this.curScreen.getValue();
	}
	public int getY(String wid) {
		return this.screen.getWidgets().getWidget(wid).getY();
	}
	public void changeY(String wid, int y) {
		this.screen.getWidgets().getWidget(wid).changeY(wid, y);
	}
	public boolean getVisible(String wid) {
		return this.screen.getWidgets().getWidget(wid).getVisible();
	}
	public void addMovableButton(String text, int x, int y, int width, int height, String wid) {
		this.screen.getWidgets().addMovableButton(text, x, y, width, height, wid);
	}
	public void addMovableTextInput(int x, int y, int width, int height, String wid) {
		this.screen.getWidgets().addMovableTextInput(x, y, width, height, wid);
	}
	public void addMovableLabel(String text, int x, int y, int width, int height, String wid) {
		this.screen.getWidgets().addMovableLabel(text, x, y, width, height, wid);
	}
	public void addButton(String text, String wid) {
		this.screen.getWidgets().addButton(text, wid);
	}
	public void addTextInput(String wid) {
		this.screen.getWidgets().addTextInput(wid);
	}
	public void addLabel(String text, String wid) {
		this.screen.getWidgets().addLabel(text, wid);
	}
	public int getHeight(String wid) {
		return this.screen.getWidgets().getWidget(wid).getHeight();
	}
	public int getWidth(String wid) {
		return this.screen.getWidgets().getWidget(wid).getWidth();
	}
	public boolean getLayout() {
		return this.screen.getLayout();
	}
	public void changeLayout(boolean layout) {
		this.screen.changeLayout(layout);
	}
	public String getText(String wid) {
		return this.screen.getWidgets().getWidget(wid).getText();
	}
	public void textEvent(String wid, String nextText) {
		this.screen.getWidgets().getWidget(wid).textEvent(wid, nextText);
	}
	public int getX(String wid) {
		return this.screen.getWidgets().getWidget(wid).getX();
	}
	public void changeX(String wid, int x) {
		this.screen.getWidgets().getWidget(wid).changeX(wid, x);
	}
	public void changeCurScreen(String nextScId) {
		this.curScreen.changeCurScreen(nextScId);
	}
	public int getState(String scId, String wid) {
		return this.screenTemplates.getScreenTemplate(scId).getWidgets1().getWidget1(wid).getState();
	}
	public int getState(String wid) {
		return this.screen.getWidgets().getWidget(wid).getState();
	}
	public void mouseEvent(String wid, int nextState) {
		this.screen.getWidgets().getWidget(wid).mouseEvent(wid, nextState);
	}
}