@Override public Object getParamValue(Req req) { return req.response().screen(); }
public static ReqRespHandler add(final Class<?> entityType, final String baseUri) { return (ReqRespHandler) (req, resp) -> { final Object entity = Cls.newInstance(entityType); if (resp.screen().title() == null) { resp.screen().title("Add " + name(entityType)); } Btn save = btnSave(entity).go(baseUri + "/manage"); Btn cancel = GUI.btn("Cancel").go(baseUri + "/manage"); return GUI.create(entity).buttons(save, cancel); }; }
@Override public void renderPage(Req req, String content, OutputStream out) { U.notNull(content, "page content"); Resp resp = req.response(); if (isFullPage(req, content)) { WritableUtils.writeUTF8(new WritableOutputStream(out), content); return; } Screen screen = resp.screen(); screen.content(GUI.hardcoded(content)); screen.render(out); }
public static ReqRespHandler edit(final Class<?> entityType, final String baseUri) { return (ReqRespHandler) (req, resp) -> { Object id = Cls.convert(req.param("id"), idType(entityType)); Object entity = JPA.getIfExists(entityType, id); if (entity == null) { return null; } JPA.detach(entity); if (resp.screen().title() == null) { resp.screen().title("Edit " + name(entityType)); } Btn save = btnSave(entity).go(baseUri + "/manage"); Btn cancel = GUI.btn("Cancel").go(uri(baseUri, entity) + "/view"); return GUI.edit(entity).buttons(save, cancel); }; }
public static ReqRespHandler manage(final Class<?> entityType, final String baseUri) { return (ReqRespHandler) (req, resp) -> { if (resp.screen().title() == null) { resp.screen().title("Manage " + English.plural(name(entityType))); } long count = JPA.count(entityType); int pageSize = 10; int pages = (int) Math.ceil(count / (double) pageSize); int page = U.or(Cls.convert(req.params().get("page"), Integer.class), 1); IRange range = Range.of((page - 1) * pageSize, pageSize); List<?> records = JPA.of(entityType).page(range.start(), range.length()); Grid grid = GUI.grid(records); Btn add = GUI.btn("Add " + name(entityType)).primary().go(baseUri + "/add"); Pager pager = GUI.pager("page").min(1).max(pages).right(true); return GUI.multi(grid, GUI.div(pager, add)); }; }
public static ReqRespHandler view(final Class<?> entityType, final String baseUri) { final Class<?> idType = idType(entityType); return (ReqRespHandler) (req, resp) -> { final Object id = Cls.convert(req.param("id"), idType); final Object entity = JPA.getIfExists(entityType, id); if (entity == null) { return null; } JPA.detach(entity); String name = name(entityType); if (resp.screen().title() == null) { resp.screen().title(name + " Details"); } final Btn edit = GUI.btn("Edit").go(uri(baseUri, entity) + "/edit"); Btn all = GUI.btn("View all").go(baseUri + "/manage"); Btn del = btnDelete().go(baseUri + "/manage").onClick(() -> JPA.delete(entityType, id)).confirm("Do you really want to delete the " + name + "?"); Form form = GUI.show(entity).buttons(edit, all, del).visible(!del.clicked()); Object msg = del.clicked() ? GUI.div("The data was deleted.") : ""; return GUI.multi(form, msg); }; }
@Override public Object getParamValue(Req req) { return req.response().screen(); }
@Override public Object execute(Req req, Resp resp) throws Exception { final Object entity = Cls.newInstance(entityType); if (resp.screen().title() == null) { resp.screen().title("Add " + name(entityType)); } Btn save = btnSave(entity).go(baseUri + "/manage"); Btn cancel = GUI.btn("Cancel").go(baseUri + "/manage"); return GUI.create(entity).buttons(save, cancel); } };
@Override public Object execute(Req req, Resp resp) throws Exception { Object id = Cls.convert(req.param("id"), idType(entityType)); Object entity = JPA.getIfExists(entityType, id); if (entity == null) { return null; } JPA.detach(entity); if (resp.screen().title() == null) { resp.screen().title("Edit " + name(entityType)); } Btn save = btnSave(entity).go(baseUri + "/manage"); Btn cancel = GUI.btn("Cancel").go(uri(baseUri, entity) + "/view"); return GUI.edit(entity).buttons(save, cancel); } };
@Override public void renderPage(Req req, String content, OutputStream out) throws Exception { U.notNull(content, "page content"); Resp resp = req.response(); if (isFullPage(req, content)) { WritableUtils.writeUTF8(new WritableOutputStream(out), content); return; } Screen screen = resp.screen(); screen.content(GUI.hardcoded(content)); screen.render(out); }
@Override public Object execute(Req req, Resp resp) throws Exception { if (resp.screen().title() == null) { resp.screen().title("Manage " + English.plural(name(entityType))); } long count = JPA.count(entityType); int pageSize = 10; int pages = (int) Math.ceil(count / (double) pageSize); int page = U.or(Cls.convert(req.params().get("page"), Integer.class), 1); IRange range = Range.of((page - 1) * pageSize, pageSize); List<?> records = JPA.of(entityType).page(range.start(), range.length()); Grid grid = GUI.grid(records); Btn add = GUI.btn("Add " + name(entityType)).primary().go(baseUri + "/add"); Pager pager = GUI.pager("page").min(1).max(pages).right(true); return GUI.multi(grid, GUI.div(pager, add)); } };
@Override public Object execute(Req req, final Resp resp) throws Exception { final Object id = Cls.convert(req.param("id"), idType); final Object entity = JPA.getIfExists(entityType, id); if (entity == null) { return null; } JPA.detach(entity); String name = name(entityType); if (resp.screen().title() == null) { resp.screen().title(name + " Details"); } final Btn edit = GUI.btn("Edit").go(uri(baseUri, entity) + "/edit"); Btn all = GUI.btn("View all").go(baseUri + "/manage"); Btn del = btnDelete().go(baseUri + "/manage").onClick(new Runnable() { @Override public void run() { JPA.delete(entityType, id); } }).confirm("Do you really want to delete the " + name + "?"); Form form = GUI.show(entity).buttons(edit, all, del).visible(!del.clicked()); Object msg = del.clicked() ? GUI.div("The data was deleted.") : ""; return GUI.multi(form, msg); } };