import java.util.*;

public class Screen {
	private ScreenTemplates screenTemplates;
	private Widgets widgets;
	private boolean layout;
	private String screenId;
	private SwingPresenter presenter;
	public Screen(ScreenTemplates screenTemplates, boolean layout, SwingPresenter presenter) {
		this.screenTemplates = screenTemplates;
		this.layout = layout;
		this.widgets = new Widgets(screenTemplates, presenter);
		this.presenter = presenter;
	}
	public Map<String, Object> getValue() {
		Map temp_nil4 = new HashMap<>();
		temp_nil4.put("layout",this.getLayout());
		temp_nil4.put("widgets",this.widgets.getValue());
		temp_nil4.put("screenId",this.getScreenId());
		return temp_nil4;
	}
	public void setValue(Map<String, Object> value) {
		this.widgets.setValue((Map<String, Object>) value.get("widgets"));
		this.layout = (boolean) value.get("layout");
		this.screenId = (String) value.get("screenId");
	}
	public Widgets getWidgets() {
		return this.widgets;
	}
	public boolean getLayout() {
		return this.layout;
	}
    public void changeLayout(boolean layout) {
        this.layout = layout;
        presenter.setLayout(layout);
    }
	public String getScreenId() {
		return this.screenId;
	}
    public SwingPresenter getPresenter() {
        return this.presenter;
    }
	public void setCurScreen(CurScreen curScreen) {
		widgets.setCurScreen(curScreen);
	}
	public void updateFromCurScreen(String curScreen, Map<String, Object> screenTemplate) {
		this.presenter.screenUpdate(getValue(), screenTemplate);
		if (screenId == null || !screenId.equals(curScreen)) {
            setValue(screenTemplate);
        }
	}
}