package foundation.page;
|
|
import foundation.data.entity.Entity;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import foundation.util.MapList;
|
|
public class Page implements IJSONProvider {
|
|
private String id;
|
private String code;
|
private String title;
|
private String url;
|
private boolean active;
|
private MapList<String, Tab> tabs;
|
private MapList<String, Button> buttons;
|
|
|
public Page() {
|
tabs = new MapList<String, Tab>();
|
buttons = new MapList<String, Button>();
|
}
|
|
public void load(Entity entity) {
|
id = entity.getString("id");
|
code = entity.getString("code");
|
title = entity.getString("title");
|
url = entity.getString("url");
|
active = entity.getBoolean("active", true);
|
}
|
|
public void loadOneTab(Tab tab) {
|
tabs.add(tab.getId(), tab);
|
}
|
|
public Tab getTab(String tabId) {
|
return tabs.get(tabId);
|
}
|
|
public void loadOneButton(Button button) {
|
buttons.add(button.getId(), button);
|
}
|
|
public Button getButton(String buttonId) {
|
return buttons.get(buttonId);
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public String getTitle() {
|
return title;
|
}
|
|
public String getUrl() {
|
return url;
|
}
|
|
public boolean isActive() {
|
return active;
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject("page");
|
writeJSONBody(writer);
|
writer.endObject();
|
}
|
|
public void writeJSONPageBody(IJSONWriter writer) {
|
writer.write("id", id);
|
writer.write("code", code);
|
writer.write("title", title);
|
writer.write("url", url);
|
writer.write("active", active);
|
}
|
public void writeJSONBody(IJSONWriter writer) {
|
//1. write page
|
writeJSONPageBody(writer);
|
|
//2. write tabs
|
writer.beginArray("tabs");
|
|
for (Tab tab: tabs) {
|
writeOneTab(writer, tab);
|
}
|
|
writer.endArray();
|
|
//3. write buttons
|
writer.beginArray("buttons");
|
|
for (Button button: buttons) {
|
writeOneButton(writer, button);
|
}
|
|
writer.endArray();
|
}
|
|
private void writeOneTab(IJSONWriter writer, Tab tab) {
|
writer.beginObject();
|
writer.write("name", tab.getName());
|
writer.endObject();
|
}
|
|
private void writeOneButton(IJSONWriter writer, Button button) {
|
writer.beginObject();
|
writer.write("code", button.getCode());
|
writer.write("title", button.getTitle());
|
writer.write("visible", true);
|
writer.write("active", true);
|
writer.endObject();
|
}
|
|
}
|