package water.util; import water.Key; import water.Model; import water.api.RequestStatics.RequestType; public class UIUtils { /** Return the query link to this page */ public static <T> String qlink(Class<T> page, Key k, String content) { return qlink(page, "source", k, content ); } public static <T> String qlink(Class<T> page, String keyPlaceholder, Key k, String content) { return link(page, RequestType.query, keyPlaceholder, k.toString(), content); } public static <T> String link(Class<T> page, String keyPlaceholder, String k, String content) { return link(page, RequestType.www, keyPlaceholder, k, content); } public static <T> String link(Class<T> page, RequestType rtype, String keyPlaceholder, String k, String content) { RString rs = new RString("<a href='/2/%page%rtype?%keyPlaceholder=%$key'>%content</a>"); rs.replace("keyPlaceholder", keyPlaceholder); rs.replace("rtype", rtype._suffix); rs.replace("page", page.getSimpleName()); rs.replace("key", k); rs.replace("content", content); return rs.toString(); } public static <T extends Model> String builderModelLink(Class<T> model, Key source, String response, String content) { return builderModelLink(model, source, response, content, null); } public static <T extends Model> String builderModelLink(Class<T> model, Key source, String response, String content, String onClick) { String name = model.getSimpleName(); name = name.substring(0, name.indexOf("Model")); RString rs = new RString("<a href='/2/%page.query?source=%$source&response=%response' %onclick >%content</a>"); rs.replace("page", name); rs.replace("source", source!=null ? source.toString() : ""); rs.replace("response", response); rs.replace("content", content); rs.replace("onclick", onClick!=null ? "onclick=\""+onClick+"\"" : ""); return rs.toString(); } public static <T extends Model> String builderLink(Class<T> model, Key source, String response, Key checkpoint, String content) { String name = model.getSimpleName(); name = name.substring(0, name.indexOf("Model")); RString rs = new RString("<a href='/2/%page.query?source=%$source&response=%response&checkpoint=%$checkpoint'>%content</a>"); rs.replace("page", name); rs.replace("source", source!=null ? source.toString() : ""); rs.replace("response", response); rs.replace("content", content); rs.replace("checkpoint", checkpoint!=null ? checkpoint.toString() : ""); return rs.toString(); } }