Cfg: Add gui-args and readonly

pull/620/head
gnosygnu 8 years ago
parent 93fcec3457
commit ba2e59fd94

@ -51,6 +51,8 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
this.val = val; this.val = val;
this.date = date; this.date = date;
this.edited = true; this.edited = true;
if (String_.Has(gui_args, "read"+"only=") || String_.Has(gui_args, "disabled="))
edited = false;
} }
public void Set_data_by_dflt() { public void Set_data_by_dflt() {
this.ctx = Xocfg_mgr.Ctx__app; this.ctx = Xocfg_mgr.Ctx__app;

@ -19,44 +19,55 @@ package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gp
import gplx.xowa.addons.apps.cfgs.enums.*; import gplx.xowa.addons.apps.cfgs.enums.*;
import gplx.xowa.addons.apps.cfgs.mgrs.types.*; import gplx.xowa.addons.apps.cfgs.mgrs.types.*;
public class Xoedit_itm_html { public class Xoedit_itm_html {
public void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String data_type, String gui_type_key, String gui_args, String data) { public void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String data_type, String gui_type_key, String gui_args, String val) {
// if gui_args exists, prepend space for html insertion; EX: "type='checkbox'{1}>" with "a=b" -> "type='checkbox' a='b'" x> "type='checkbox'a='b'"
if (String_.Len_gt_0(gui_args)) gui_args = " " + gui_args;
switch (Xoitm_gui_tid.To_uid(gui_type_key)) { switch (Xoitm_gui_tid.To_uid(gui_type_key)) {
case Xoitm_gui_tid.Tid__bool: case Xoitm_gui_tid.Tid__bool:
bfr.Add_str_u8_fmt("<input id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__bool\" type=\"checkbox\"{2}></input>", gui_type_key, key, String_.Eq(data, "y") ? " checked=\"checked\"" : ""); // bfr.Add_str_u8_fmt("<input id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__bool\" type=\"checkbox\"{1}{3}></input>", gui_type_key, gui_args, key, String_.Eq(val, "y") ? " checked=\"checked\"" : "");
String span_args = "";
if (String_.Has(gui_args, "disabled=\"disabled\""))
span_args = " class=\"xocfg__bool__disabled\"";
bfr.Add_str_u8_fmt("<label><input id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__bool\" type=\"checkbox\"{1}{3}></input><span{4}></span></label>", gui_type_key, gui_args, key, String_.Eq(val, "y") ? " checked=\"checked\"" : "", span_args);
break; break;
case Xoitm_gui_tid.Tid__int: case Xoitm_gui_tid.Tid__int:
bfr.Add_str_u8_fmt("<input id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__int\" type=\"text\" value=\"{2}\"></input>", gui_type_key, key, data); bfr.Add_str_u8_fmt("<input id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__int\" type=\"text\"{1} value=\"{3}\"></input>", gui_type_key, gui_args, key, val);
break; break;
case Xoitm_gui_tid.Tid__str: case Xoitm_gui_tid.Tid__str:
bfr.Add_str_u8_fmt("<input id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__str\" type=\"text\" value=\"{2}\"></input>", gui_type_key, key, data); bfr.Add_str_u8_fmt("<input id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__str\" type=\"text\"{1} value=\"{3}\"></input>", gui_type_key, gui_args, key, val);
break; break;
case Xoitm_gui_tid.Tid__memo: case Xoitm_gui_tid.Tid__memo:
bfr.Add_str_u8_fmt("<textarea id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__memo\" rows=\"4\">{2}</textarea>", gui_type_key, key, String_.Replace(data, "<", "&lt;")); if (String_.Len_eq_0(gui_args)) gui_args = " rows=\"4\"";
bfr.Add_str_u8_fmt("<textarea id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__memo\"{1}>{3}</textarea>", gui_type_key, gui_args, key, String_.Replace(val, "<", "&lt;"));
break; break;
case Xoitm_gui_tid.Tid__list: case Xoitm_gui_tid.Tid__list:
// get list of kvs by type
Keyval[] kvs_ary = type_mgr.Lists__get(data_type); Keyval[] kvs_ary = type_mgr.Lists__get(data_type);
int len = kvs_ary.length; int len = kvs_ary.length;
bfr.Add_str_u8_fmt("<select id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__list\" type=\"text\" size=\"{2}\">\n", gui_type_key, key, len); if (String_.Len_eq_0(gui_args)) gui_args = "size=\"" + Int_.To_str(len) + "\"";
// build html
bfr.Add_str_u8_fmt("<select id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" accesskey=\"d\" class=\"xocfg__list\" {1}>\n", gui_type_key, gui_args, key);
for (int i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
Keyval kv = kvs_ary[i]; Keyval kv = kvs_ary[i];
String kv_key = kv.Key(); String kv_key = kv.Key();
String kv_val = kv.Val_to_str_or_null(); String kv_val = kv.Val_to_str_or_null();
bfr.Add_str_u8_fmt("<option value=\"{0}\"{2}>{1}</option>\n", kv_key, kv_val, String_.Eq(data, kv_key) ? " selected=\"selected\"" : ""); bfr.Add_str_u8_fmt("<option value=\"{0}\"{2}>{1}</option>\n", kv_key, kv_val, String_.Eq(val, kv_key) ? " selected=\"selected\"" : "");
} }
bfr.Add_str_u8_fmt("</select>\n"); bfr.Add_str_u8_fmt("</select>\n");
break; break;
case Xoitm_gui_tid.Tid__io_cmd: case Xoitm_gui_tid.Tid__io_cmd:
String[] lines = Xocfg_mgr.Parse_io_cmd(data); String[] lines = Xocfg_mgr.Parse_io_cmd(val);
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<input class=\"xocfg__io_cmd__exe__txt\" id=\"{1}-exe\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-exe\" accesskey=\"d\" type=\"text\" value=\"{2}\"></input>\n" ( "<input class=\"xocfg__io_cmd__exe__txt\" id=\"{2}-exe\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}-exe\" accesskey=\"d\" type=\"text\"{1} value=\"{3}\"></input>\n"
+ "<button class=\"xocfg__io_cmd__exe__btn\" onclick='xowa_io_select(\"file\", \"{1}-exe\", \"Please select a file.\");'>...</button><br/>\n" + "<button class=\"xocfg__io_cmd__exe__btn\" onclick='xowa_io_select(\"file\", \"{2}-exe\", \"Please select a file.\");'>...</button><br/>\n"
, gui_type_key, key, lines[0]); , gui_type_key, gui_args, key, lines[0]);
bfr.Add_str_u8_fmt bfr.Add_str_u8_fmt
( "<input class=\"xocfg__io_cmd__arg__txt\" id=\"{1}-arg\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-arg\" accesskey=\"d\" type=\"text\" value='{2}'>\n" ( "<input class=\"xocfg__io_cmd__arg__txt\" id=\"{2}-arg\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}-arg\" accesskey=\"d\" type=\"text\"{1} value='{3}'>\n"
, gui_type_key, key, lines[1]); , gui_type_key, gui_args, key, lines[1]);
break; break;
case Xoitm_gui_tid.Tid__btn: case Xoitm_gui_tid.Tid__btn:
bfr.Add_str_u8_fmt("<input id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" class=\"xocfg__btn\" type=\"button\"{2}></input>", gui_type_key, key, key); bfr.Add_str_u8_fmt("<input id=\"{2}\" data-xocfg-key=\"{2}\" data-xocfg-gui=\"{0}\" class=\"xocfg__btn\" type=\"button\"{1}{3}></input>", gui_type_key, gui_args, key, key);
break; break;
default: default:
break; break;

Loading…
Cancel
Save