diff --git a/src/CurScreen.java b/src/CurScreen.java index 96bf980..2432286 100644 --- a/src/CurScreen.java +++ b/src/CurScreen.java @@ -2,14 +2,10 @@ public class CurScreen { private ScreenTemplates screenTemplates; - private ScreenTemplates screenTemplates; - private CurScreen curScreen; private String value = ""; private Screen screen; - public CurScreen(ScreenTemplates screenTemplates, ScreenTemplates screenTemplates, CurScreen curScreen, Screen screen) { + public CurScreen(Screen screen, ScreenTemplates screenTemplates) { this.screenTemplates = screenTemplates; - this.screenTemplates = screenTemplates; - this.curScreen = curScreen; this.screen = screen; } public String getValue() { @@ -30,39 +26,12 @@ temp_if0 = this.value; } this.value = temp_if0; - Map screenTemplate = this.screenTemplate.getValue(); - this.screenTemplate = screenTemplates.getScreenTemplate(curScreen.getValue()); - this.screen.updateFromCurScreen(this.value, screenTemplate); - Map screenTemplate = this.screenTemplate.getValue(); - this.screenTemplate = screenTemplates.getScreenTemplate(curScreen.getValue()); - this.screen.updateFromCurScreen(this.value, screenTemplate); - } - public void updateFromState(String scId, String wid, int state) { - String temp_if1; - if ((state==0)) { - temp_if1 = "000"; - } else { - temp_if1 = this.value; - } - this.value = temp_if1; - String temp_if0; - if ((state==0)) { - temp_if0 = "001"; - } else { - temp_if0 = this.value; - } - this.value = temp_if0; - Map screenTemplate = this.screenTemplate.getValue(); - this.screenTemplate = screenTemplates.getScreenTemplate(curScreen.getValue()); - this.screen.updateFromCurScreen(this.value, screenTemplate); - Map screenTemplate = this.screenTemplate.getValue(); - this.screenTemplate = screenTemplates.getScreenTemplate(curScreen.getValue()); + Map screenTemplate = screenTemplates.getScreenTemplate(this.value).getValue(); this.screen.updateFromCurScreen(this.value, screenTemplate); } public void changeCurScreen(String nextScId) { this.value = nextScId; - Map screenTemplate = this.screenTemplate.getValue(); - this.screenTemplate = screenTemplates.getScreenTemplate(curScreen.getValue()); + Map screenTemplate = screenTemplates.getScreenTemplate(this.value).getValue(); this.screen.updateFromCurScreen(this.value, screenTemplate); } } \ No newline at end of file diff --git a/src/Main.java b/src/Main.java index c5177b3..c42e6cd 100644 --- a/src/Main.java +++ b/src/Main.java @@ -5,9 +5,9 @@ private Screen screen; private CurScreen curScreen; public Main() { - this.screenTemplates = new ScreenTemplates(); - this.screen = new Screen(screenTemplates); + this.screenTemplates = new ScreenTemplates(curScreen); this.curScreen = new CurScreen(screen, screenTemplates); + this.screen = new Screen(screenTemplates, true, curScreen); } public Map getWidget(String wid) { return this.screen.getWidgets().getWidget(wid).getValue(); @@ -15,8 +15,14 @@ public Map getScreenTemplate(String scId) { return this.screenTemplates.getScreenTemplate(scId).getValue(); } - public Map getWidgets(String scId) { - return this.screenTemplates.getScreenTemplate(scId).getWidgets().getValue(); + public Map getWidgets() { + return this.screen.getWidgets().getValue(); + } + public Map getWidget1(String scId, String wid) { + return this.screenTemplates.getScreenTemplate(scId).getWidgets1().getWidget1(wid).getValue(); + } + public Map getWidgets1(String scId) { + return this.screenTemplates.getScreenTemplate(scId).getWidgets1().getValue(); } public Map getScreenTemplates() { return this.screenTemplates.getValue(); @@ -27,47 +33,14 @@ public String getCurScreen() { return this.curScreen.getValue(); } - public int getHeight(String wid) { - return this.screen.getWidgets().getWidget(wid).getHeight(); - } - public boolean getVisible(String wid) { - return this.screen.getWidgets().getWidget(wid).getVisible(); - } 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 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).getWidgets().getWidget(wid).getState(); - } - public void mouseEvent(String wid, int nextState) { - this.screen.getWidgets().getWidget(wid).mouseEvent(wid, nextState); - } - public boolean getLayout() { - return this.screen.getLayout(); - } - public void changeLayout(boolean layout) { - this.screen.changeLayout(layout); - } - public int getWidth(String wid) { - return this.screen.getWidgets().getWidget(wid).getWidth(); + 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); @@ -87,4 +60,40 @@ 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); + } } \ No newline at end of file diff --git a/src/Screen.java b/src/Screen.java index 6935fda..0c80c60 100644 --- a/src/Screen.java +++ b/src/Screen.java @@ -2,28 +2,33 @@ public class Screen { private ScreenTemplates screenTemplates; - private Widgets widgets = new Widgets(); + private Widgets widgets; private boolean layout; - public Screen(ScreenTemplates screenTemplates, boolean layout) { + public Screen(ScreenTemplates screenTemplates, boolean layout, CurScreen curScreen) { this.screenTemplates = screenTemplates; this.layout = layout; + this.widgets = new Widgets(screenTemplates, curScreen); } public Map getValue() { - Map temp_nil2 = new HashMap<>(); - temp_nil2.put("layout",this.getLayout()); - temp_nil2.put("widgets",this.widgets.getValue()); - return temp_nil2; + Map temp_nil3 = new HashMap<>(); + temp_nil3.put("widgets",this.widgets.getValue()); + temp_nil3.put("layout",this.getLayout()); + return temp_nil3; + } + public void setValue(Map value) { + this.widgets.setValue((Map) value.get("widgets")); + this.layout = (boolean) value.get("layout"); } public Widgets getWidgets() { return this.widgets; } - public void updateFromCurScreen(String curScreen, Map screenTemplate) { - this.value = screenTemplate; - } public boolean getLayout() { return this.layout; } public void changeLayout(boolean layout) { this.layout = layout; } + public void updateFromCurScreen(String curScreen, Map value) { + setValue(value); + } } \ No newline at end of file diff --git a/src/ScreenTemplate.java b/src/ScreenTemplate.java index 3ed1c67..b6ddac0 100644 --- a/src/ScreenTemplate.java +++ b/src/ScreenTemplate.java @@ -1,13 +1,21 @@ import java.util.*; public class ScreenTemplate { - private Widgets widgets = new Widgets(); + private CurScreen curScreen; + private Widgets1 widgets; public Map getValue() { Map temp_nil1 = new HashMap<>(); temp_nil1.put("widgets",this.widgets.getValue()); return temp_nil1; } - public Widgets getWidgets() { + public void setValue(Map value) { + widgets.setValue((Map) value.get("widgets")); + } + public Widgets1 getWidgets1() { return this.widgets; } + public ScreenTemplate(CurScreen curScreen) { + this.curScreen = curScreen; + this.widgets = new Widgets1(this.curScreen); + } } \ No newline at end of file diff --git a/src/ScreenTemplates.java b/src/ScreenTemplates.java index c8b5ed6..b013be6 100644 --- a/src/ScreenTemplates.java +++ b/src/ScreenTemplates.java @@ -1,11 +1,37 @@ import java.util.*; public class ScreenTemplates { - private Map value = temp_json0; + private CurScreen curScreen; + private Map value = new HashMap<>(); + public ScreenTemplates(CurScreen curScreen) { + this.curScreen = curScreen; + ScreenTemplate screenTemplate_tmp000 = new ScreenTemplate(curScreen); + screenTemplate_tmp000.setValue(Map.of("widgets", Map.of("001", Map.of("type", "textInput", + "text", "", + "state", 0, + "visible", true), + "002", Map.of("type", "button", + "text", "Next", + "state", 0, + "visible", true)), + "visible", true)); + value.put("000", screenTemplate_tmp000); + ScreenTemplate screenTemplate_tmp001 = new ScreenTemplate(curScreen); + screenTemplate_tmp001.setValue(Map.of("widgets", Map.of("003", Map.of("type", "label", + "text", "label", + "state", 0, + "visible", true), + "004", Map.of("type", "button", + "text", "Back", + "state", 0, + "visible", true)), + "visible", true)); + value.put("001", screenTemplate_tmp001); + } public Map getValue() { return new HashMap<>(this.value); } - public ScreenTemplate getScreenTemplate(String scId) { - return this.value.get(scId); + public ScreenTemplate getScreenTemplate(String nextScId) { + return this.value.get(nextScId); } } \ No newline at end of file diff --git a/src/Widget.java b/src/Widget.java index fb0f538..d20581d 100644 --- a/src/Widget.java +++ b/src/Widget.java @@ -1,41 +1,42 @@ import java.util.*; public class Widget { - private int height; - private boolean visible; + private CurScreen curScreen; private int y; + private boolean visible; + private int height; + private int width; private String text; private int x; - private CurScreen curScreen; - private int state; - private CurScreen curScreen; - private Widget widget; + private Widget1 widget1; private ScreenTemplates screenTemplates; - private Widget widget; - private int width; + private int state; public Map getValue() { Map temp_nil0 = new HashMap<>(); - temp_nil0.put("x",this.getX()); temp_nil0.put("y",this.getY()); - temp_nil0.put("visible",this.getVisible()); + temp_nil0.put("x",this.getX()); temp_nil0.put("height",this.getHeight()); - temp_nil0.put("width",this.getWidth()); temp_nil0.put("text",this.getText()); + temp_nil0.put("visible",this.getVisible()); + temp_nil0.put("width",this.getWidth()); temp_nil0.put("state",this.getState()); return temp_nil0; } - public int getHeight() { - return this.height; - } - public boolean getVisible() { - return this.visible; - } public int getY() { return this.y; } public void changeY(String wid, int y) { this.y = y; } + public boolean getVisible() { + return this.visible; + } + public int getHeight() { + return this.height; + } + public int getWidth() { + return this.width; + } public String getText() { return this.text; } @@ -48,44 +49,23 @@ public void changeX(String wid, int x) { this.x = x; } - public void updateStateFromState(String self, String self2, String wid, int state, String curScreen) { - this.state = state; - this.state = state; - this.curScreen.updateFromState(scId, wid, this.state); - this.curScreen.updateFromState(scId, wid, this.state); - } public int getState() { return this.state; } - public void updateStateFromState(String self, String self2, String wid, int state, String curScreen) { - this.state = state; - this.state = state; - this.curScreen.updateFromState(scId, wid, this.state); - this.curScreen.updateFromState(scId, wid, this.state); - } public void mouseEvent(String wid, int nextState) { this.state = nextState; - String curScreen = this.curScreen.getValue(); - this.widget = screenTemplates.getScreenTemplate(curScreen.getValue()).getWidgets().getWidget(wid); - this.widget.updateStateFromState(wid, wid, this.state, curScreen); - String curScreen = this.curScreen.getValue(); - this.widget = screenTemplates.getScreenTemplate(curScreen.getValue()).getWidgets().getWidget(wid); - this.widget.updateStateFromState(wid, wid, this.state, curScreen); + this.widget1 = screenTemplates.getScreenTemplate(curScreen.getValue()).getWidgets1().getWidget1(wid); + this.widget1.updateStateFromState(wid, wid, wid, this.state, curScreen.getValue()); } - public int getWidth() { - return this.width; - } - public Widget(int state, CurScreen curScreen) { - this.state = state; - this.curScreen = curScreen; - } - public Widget(boolean visible, ScreenTemplates screenTemplates, int x, int width, int y, String text, int height) { + public Widget(boolean visible, ScreenTemplates screenTemplates, int width, int x, int y, String text, int state, int height, CurScreen curScreen) { this.visible = visible; this.screenTemplates = screenTemplates; - this.x = x; this.width = width; + this.x = x; this.y = y; this.text = text; + this.state = state; this.height = height; + this.curScreen = curScreen; } } \ No newline at end of file diff --git a/src/Widget1.java b/src/Widget1.java new file mode 100644 index 0000000..73a2b32 --- /dev/null +++ b/src/Widget1.java @@ -0,0 +1,52 @@ +import java.util.*; + +public class Widget1 { + private CurScreen curScreen; + private int y; + private boolean visible; + private int height; + private int width; + private String text; + private int x; + private int state; + public Map getValue() { + Map temp_nil2 = new HashMap<>(); + temp_nil2.put("y",this.getY()); + temp_nil2.put("x",this.getX()); + temp_nil2.put("height",this.getHeight()); + temp_nil2.put("text",this.getText()); + temp_nil2.put("visible",this.getVisible()); + temp_nil2.put("width",this.getWidth()); + temp_nil2.put("state",this.getState()); + return temp_nil2; + } + public int getY() { + return this.y; + } + public boolean getVisible() { + return this.visible; + } + public int getHeight() { + return this.height; + } + public int getWidth() { + return this.width; + } + public String getText() { + return this.text; + } + public int getX() { + return this.x; + } + public void updateStateFromState(String self, String self2, String wid, int state, String curScreen) { + this.state = state; + this.curScreen.updateFromState(curScreen, wid, this.state); + } + public int getState() { + return this.state; + } + public Widget1(boolean visible, int width, int x, int y, String text, int state, int height, CurScreen curScreen) { + this.state = state; + this.curScreen = curScreen; + } +} \ No newline at end of file diff --git a/src/Widgets.java b/src/Widgets.java index 568d04a..4752df7 100644 --- a/src/Widgets.java +++ b/src/Widgets.java @@ -1,32 +1,47 @@ import java.util.*; public class Widgets { + ScreenTemplates screenTemplates; + CurScreen curScreen; private Map value = new HashMap<>(); public Map getValue() { return new HashMap<>(this.value); } - public Widget getWidget(String wid) { - return this.value.get(wid); + public void setValue(Map value) { + for (String key: value.keySet()) { + int y = (int) ((Map) value.get(key)).get("y"); + int x = (int) ((Map) value.get(key)).get("x"); + int height = (int) ((Map) value.get(key)).get("height"); + String text = (String) ((Map) value.get(key)).get("text"); + boolean visible = (boolean) ((Map) value.get(key)).get("visible"); + int width = (int) ((Map) value.get(key)).get("width"); + int state = (int) ((Map) value.get(key)).get("state"); + this.value.put(key, new Widget(true, screenTemplates, width, x, y, text, 0, height, curScreen)); + } } public Widget getWidget(String wid) { return this.value.get(wid); } public void addMovableButton(String text, int x, int y, int width, int height, String wid) { - this.value.put(wid,new Widget(0, curScreen)); + this.value.put(wid,new Widget(true, screenTemplates, width, x, y, text, 0, height, curScreen)); } public void addMovableTextInput(int x, int y, int width, int height, String wid) { - this.value.put(wid,new Widget(0, curScreen)); + this.value.put(wid,new Widget(true, screenTemplates, width, x, y, "", 0, height, curScreen)); } public void addMovableLabel(String text, int x, int y, int width, int height, String wid) { - this.value.put(wid,new Widget(0, curScreen)); + this.value.put(wid,new Widget(true, screenTemplates, width, x, y, text, 0, height, curScreen)); } public void addButton(String text, String wid) { - this.value.put(wid,new Widget(0, curScreen)); + this.value.put(wid,new Widget(true, screenTemplates, 0, 0, 0, text, 0, 0, curScreen)); } public void addTextInput(String wid) { - this.value.put(wid,new Widget(0, curScreen)); + this.value.put(wid,new Widget(true, screenTemplates, 0, 0, 0, "", 0, 0, curScreen)); } public void addLabel(String text, String wid) { - this.value.put(wid,new Widget(0, curScreen)); + this.value.put(wid,new Widget(true, screenTemplates, 0, 0, 0, text, 0, 0, curScreen)); + } + public Widgets(ScreenTemplates screenTemplates, CurScreen curScreen) { + this.screenTemplates = screenTemplates; + this.curScreen = curScreen; } } \ No newline at end of file diff --git a/src/Widgets1.java b/src/Widgets1.java new file mode 100644 index 0000000..82e71a0 --- /dev/null +++ b/src/Widgets1.java @@ -0,0 +1,27 @@ +import java.util.*; + +public class Widgets1 { + private CurScreen curScreen; + private Map value = new HashMap<>(); + public Map getValue() { + return new HashMap<>(this.value); + } + public void setValue(Map value) { + for (String key: value.keySet()) { + int y = (int) ((Map) value.get(key)).get("y"); + int x = (int) ((Map) value.get(key)).get("x"); + int height = (int) ((Map) value.get(key)).get("height"); + String text = (String) ((Map) value.get(key)).get("text"); + boolean visible = (boolean) ((Map) value.get(key)).get("visible"); + int width = (int) ((Map) value.get(key)).get("width"); + int state = (int) ((Map) value.get(key)).get("state"); + this.value.put(key, new Widget1(true, width, x, y, text, 0, height, curScreen)); + } + } + public Widget1 getWidget1(String wid) { + return this.value.get(wid); + } + public Widgets1(CurScreen curScreen) { + this.curScreen = curScreen; + } +} \ No newline at end of file