package foundation.capacity.role; import foundation.data.entity.Entity; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; import foundation.page.Button; import foundation.page.Page; import foundation.page.Tab; import foundation.util.ContentBuilder; import foundation.util.MapList; public class RolePage implements IJSONProvider { private Page page; private MapList buttons; private MapList tabs; public RolePage(Page page) { this.buttons = new MapList(); this.tabs = new MapList(); this.page = page; } public void load(Entity entity) throws Exception { // TODO Auto-generated method stub } public void loadOneTab(String tabId) { Tab tab = page.getTab(tabId); if (tab == null) { return; } RoleTab roleTab = new RoleTab(tab); tabs.add(tab.getId(), roleTab); } //@he public void loadOneButton(Entity entity) { String buttonId = entity.getString("button_id"); Button button = page.getButton(buttonId); if (button == null) { return; } RoleButton roleButton = new RoleButton(button); roleButton.load(entity); buttons.add(roleButton.getId(), roleButton); } public String getId() { return page.getId(); } public String getCode() { return page.getCode(); } public static String createKey(String... segments) { if (segments == null || segments.length == 0) { return "null"; } ContentBuilder key = new ContentBuilder("-"); for (String segment : segments) { key.append(segment); } return key.toString(); } @Override public void writeJSON(IJSONWriter writer) { writer.beginObject(); writeJSONBody(writer); writer.endObject(); } //@he private void writeJSONBody(IJSONWriter writer) { //1. write page page.writeJSONPageBody(writer); //2. write tabs writer.beginArray("tabs"); for (RoleTab tab: tabs) { tab.writeJSON(writer); } writer.endArray(); //3. write buttons writer.beginArray("buttons"); for (RoleButton button: buttons) { button.writeJSON(writer); } writer.endArray(); } }