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<String, RoleButton> buttons;
|
private MapList<String, RoleTab> tabs;
|
|
public RolePage(Page page) {
|
this.buttons = new MapList<String, RoleButton>();
|
this.tabs = new MapList<String, RoleTab>();
|
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();
|
}
|
|
}
|