diff --git a/100_core/src/gplx/Bool_.java b/100_core/src/gplx/Bool_.java
index 91c149a69..3f78d4923 100644
--- a/100_core/src/gplx/Bool_.java
+++ b/100_core/src/gplx/Bool_.java
@@ -18,7 +18,7 @@ along with this program. If not, see .
package gplx;
import gplx.langs.gfs.*;
public class Bool_ {
- public static final String Cls_val_name = "boolean";
+ public static final String Cls_val_name = "bool";
public static final Class> Cls_ref_type = Boolean.class;
public static final boolean N = false , Y = true;
public static final byte N_byte = 0 , Y_byte = 1 , __byte = 127;
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_row.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_row.java
index c606db7d6..08452fd3b 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_row.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_row.java
@@ -17,22 +17,20 @@ along with this program. If not, see .
*/
package gplx.xowa.addons.apps.cfgs.dbs.tbls; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.dbs.*;
public class Xocfg_itm_row {
- public Xocfg_itm_row(int id, int scope_id, String data_type, int gui_type, String gui_args, String gui_cls, String key, String dflt) {
+ public Xocfg_itm_row(int id, String key, int scope, String type, String dflt, String html_atrs, String html_cls) {
this.id = id;
- this.scope_id = scope_id;
- this.data_type = data_type;
- this.gui_type = gui_type;
- this.gui_args = gui_args;
- this.gui_cls = gui_cls;
this.key = key;
+ this.scope = scope;
+ this.type = type;
this.dflt = dflt;
+ this.html_atrs = html_atrs;
+ this.html_cls = html_cls;
}
public int Id() {return id;} private final int id;
- public int Scope_id() {return scope_id;} private final int scope_id;
- public String Data_type() {return data_type;} private final String data_type;
- public int Gui_type() {return gui_type;} private final int gui_type;
- public String Gui_args() {return gui_args;} private final String gui_args;
- public String Gui_cls() {return gui_cls;} private final String gui_cls;
public String Key() {return key;} private final String key;
+ public int Scope() {return scope;} private final int scope;
+ public String Type() {return type;} private final String type;
public String Dflt() {return dflt;} private final String dflt;
+ public String Html_atrs() {return html_atrs;} private final String html_atrs;
+ public String Html_cls() {return html_cls;} private final String html_cls;
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_tbl.java
index 9d56557c9..c400d7060 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_tbl.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_itm_tbl.java
@@ -19,19 +19,18 @@ package gplx.xowa.addons.apps.cfgs.dbs.tbls; import gplx.*; import gplx.xowa.*;
import gplx.dbs.*; import gplx.dbs.utls.*;
public class Xocfg_itm_tbl implements Db_tbl {
private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
- private final String fld__itm_id, fld__itm_key, fld__itm_scope_id, fld__itm_data_type, fld__itm_gui_type, fld__itm_gui_cls, fld__itm_gui_args, fld__itm_dflt;
+ private final String fld__itm_id, fld__itm_key, fld__itm_scope, fld__itm_type, fld__itm_dflt, fld__itm_html_atrs, fld__itm_html_cls;
private final Db_conn conn;
public Xocfg_itm_tbl(Db_conn conn) {
this.conn = conn;
this.tbl_name = "cfg_itm";
- this.fld__itm_id = flds.Add_int_pkey("itm_id"); // EX: '2'
+ this.fld__itm_id = flds.Add_int_pkey("itm_id"); // EX: '1'
this.fld__itm_key = flds.Add_str("itm_key", 255); // EX: 'cfg_1'
- this.fld__itm_scope_id = flds.Add_int("itm_scope_id"); // EX: '1'; ENUM: Xoitm_scope_tid
- this.fld__itm_data_type = flds.Add_str("itm_data_type", 255); // EX: '1'; ENUM: Type_adp_
- this.fld__itm_gui_type = flds.Add_int("itm_gui_type"); // EX: '1'; ENUM: Xoitm_gui_tid
- this.fld__itm_gui_args = flds.Add_str("itm_gui_args", 255); // EX: '1,40' (numeric); '255' (textbox); 'enum_name' (combo); etc..
- this.fld__itm_gui_cls = flds.Add_str("itm_gui_cls", 255); // EX: 'xocfg_custom'
+ this.fld__itm_scope = flds.Add_int("itm_scope"); // EX: '1'; ENUM: Xoitm_scope_enum
+ this.fld__itm_type = flds.Add_str("itm_type", 255); // EX: '1'; ENUM: Xoitm_type_enum
this.fld__itm_dflt = flds.Add_str("itm_dflt", 4096); // EX: 'abc'
+ this.fld__itm_html_atrs = flds.Add_str("itm_html_atrs", 255); // EX: 'size="5"'
+ this.fld__itm_html_cls = flds.Add_str("itm_html_cls", 255); // EX: 'xocfg__bool__readonly'
conn.Rls_reg(this);
}
public String Tbl_name() {return tbl_name;} private final String tbl_name;
@@ -39,8 +38,8 @@ public class Xocfg_itm_tbl implements Db_tbl {
conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds
, Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, fld__itm_key, fld__itm_key)));
}
- public void Upsert(int itm_id, int scope_id, String db_type, int gui_type, String gui_args, String gui_cls, String itm_key, String itm_dflt) {
- Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__itm_id), itm_id, itm_key, scope_id, db_type, gui_type, gui_args, gui_cls, itm_dflt);
+ public void Upsert(int id, String key, int scope, String type, String dflt, String html_atrs, String html_cls) {
+ Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__itm_id), id, key, scope, type, dflt, html_atrs, html_cls);
}
public int Select_id_or(String key, int or) {
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__itm_key).Crt_str(fld__itm_key, key).Exec_select__rls_auto();
@@ -55,13 +54,12 @@ public class Xocfg_itm_tbl implements Db_tbl {
private Xocfg_itm_row Load(Db_rdr rdr) {
return new Xocfg_itm_row
( rdr.Read_int(fld__itm_id)
- , rdr.Read_int(fld__itm_scope_id)
- , rdr.Read_str(fld__itm_data_type)
- , rdr.Read_int(fld__itm_gui_type)
- , rdr.Read_str(fld__itm_gui_args)
- , rdr.Read_str(fld__itm_gui_cls)
, rdr.Read_str(fld__itm_key)
+ , rdr.Read_int(fld__itm_scope)
+ , rdr.Read_str(fld__itm_type)
, rdr.Read_str(fld__itm_dflt)
+ , rdr.Read_str(fld__itm_html_atrs)
+ , rdr.Read_str(fld__itm_html_cls)
);
}
public void Rls() {}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_gui_tid.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_gui_tid.java
deleted file mode 100644
index 415a3324c..000000000
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_gui_tid.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-XOWA: the XOWA Offline Wiki Application
-Copyright (C) 2012 gnosygnu@gmail.com
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as
-published by the Free Software Foundation, either version 3 of the
-License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see .
-*/
-package gplx.xowa.addons.apps.cfgs.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
-public class Xoitm_gui_tid {
- public Xoitm_gui_tid(int uid, String key) {
- this.uid = uid;
- this.key = key;
- }
- public int Uid() {return uid;} private final int uid;
- public String Key() {return key;} private final String key;
-
- public static final int // SERIALIZED
- Tid__bool = 0
- , Tid__str = 1
- , Tid__int = 2
- , Tid__memo = 3
- , Tid__list = 4
- , Tid__io_cmd = 5
- , Tid__io_file = 6
- , Tid__io_dir = 7
- , Tid__btn = 8
- , Tid__gui_binding = 9
- ;
- private static final Hash_adp to_uid_hash = Hash_adp_.New();
- private static final Xoitm_gui_tid[] to_key_ary = new Xoitm_gui_tid[10];
- public static final Xoitm_gui_tid
- Itm__bool = New(Tid__bool , "bool")
- , Itm__str = New(Tid__str , "string")
- , Itm__int = New(Tid__int , "int")
- , Itm__memo = New(Tid__memo , "memo")
- , Itm__list = New(Tid__list , "select")
- , Itm__io_cmd = New(Tid__io_cmd , "io.cmd")
- , Itm__io_file = New(Tid__io_file , "io.file")
- , Itm__io_dir = New(Tid__io_dir , "io.dir")
- , Itm__btn = New(Tid__btn , "btn")
- , Itm__gui_binding = New(Tid__gui_binding , "gui.binding")
- ;
- private static Xoitm_gui_tid New(int uid, String key) {
- Xoitm_gui_tid rv = new Xoitm_gui_tid(uid, key);
- to_uid_hash.Add(key, rv);
- to_key_ary[uid] = rv;
- return rv;
- }
- public static int To_uid(String str) {
- Xoitm_gui_tid rv = (Xoitm_gui_tid)to_uid_hash.Get_by_or_fail(str);
- return rv.uid;
- }
- public static String To_key(int uid) {
- return to_key_ary[uid].key;
- }
- public static String Infer_gui_type(String db_type) {
- if (String_.Eq(db_type, "bool")) return Itm__bool.key;
- else if (String_.Eq(db_type, "int")) return Itm__int.key;
- else if (String_.Eq(db_type, "memo")) return Itm__memo.key;
- else if (String_.Eq(db_type, "io.cmd")) return Itm__io_cmd.key;
- else if (String_.Eq(db_type, "gui.binding")) return Itm__gui_binding.key;
- else if (String_.Has_at_bgn(db_type, "list:")) return Itm__list.key;
- else if (String_.Eq(db_type, "btn")) return Itm__btn.key;
- else return Itm__str.key;
- }
-}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_scope_tid.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_scope_enum.java
similarity index 95%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_scope_tid.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_scope_enum.java
index ee4650d5b..974e7abbf 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_scope_tid.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_scope_enum.java
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.addons.apps.cfgs.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
-public class Xoitm_scope_tid { // SERIALIZED
+public class Xoitm_scope_enum { // SERIALIZED
public static final int Tid__app = 1, Tid__wiki = 2;
public static int To_int(String raw) {
if (String_.Eq(raw, "app")) return Tid__app;
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_db_tid.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_type_enum.java
similarity index 51%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_db_tid.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_type_enum.java
index 2228be810..c711511a0 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_db_tid.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/enums/Xoitm_type_enum.java
@@ -16,14 +16,27 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .
*/
package gplx.xowa.addons.apps.cfgs.enums; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
-public class Xoitm_db_tid {
- public static final int Tid__bool = 1, Tid__int = 2, Tid__str = 3, Tid__memo = 4;
- public static int To_int(String s) {
- if (String_.Eq(s, "bool")) return Tid__bool;
- else if (String_.Eq(s, "int")) return Tid__int;
- else if (String_.Eq(s, "string")) return Tid__str;
- else if (String_.Eq(s, "memo")) return Tid__memo;
- else return Tid__str;
-// else throw Err_.new_wo_type("xo.cfg_maint:unknown db_type", "db_type", s);
+public class Xoitm_type_enum {
+ public static final int
+ Tid__bool = 0
+ , Tid__int = 1
+ , Tid__str = 2
+ , Tid__memo = 3
+ , Tid__list = 4
+ , Tid__btn = 5
+ , Tid__io_cmd = 6
+ , Tid__gui_binding = 7
+ ;
+
+ public static int To_uid(String v) {
+ if (String_.Eq(v, Bool_.Cls_val_name)) return Tid__bool;
+ else if (String_.Eq(v, Int_.Cls_val_name)) return Tid__int;
+ else if (String_.Eq(v, String_.Cls_val_name)) return Tid__str;
+ else if (String_.Eq(v, "memo")) return Tid__memo;
+ else if (String_.Eq(v, "btn")) return Tid__btn;
+ else if (String_.Eq(v, "io.cmd")) return Tid__io_cmd;
+ else if (String_.Eq(v, "gui.binding")) return Tid__gui_binding;
+ else if (String_.Has_at_bgn(v, "list:")) return Tid__list;
+ else throw Err_.new_wo_type("unknown cfg type enum; v=" + v);
}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_grp.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_grp.java
index bd012fc27..f6ab9e53d 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_grp.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_grp.java
@@ -19,11 +19,13 @@ package gplx.xowa.addons.apps.cfgs.mgrs.caches; import gplx.*; import gplx.xowa.
public class Xocfg_cache_grp {
private final Hash_adp vals = Hash_adp_.New();
private final Ordered_hash subs = Ordered_hash_.New();
- public Xocfg_cache_grp(String key, String dflt) {
+ public Xocfg_cache_grp(String key, String dflt, String data_type) {
this.key = key;
this.dflt = dflt;
+ this.data_type = data_type;
}
public String Key() {return key;} private final String key;
+ public String Data_type() {return data_type;} private final String data_type;
public String Dflt() {return dflt;} private String dflt;
public void Dflt_(String v) {this.dflt = v;}
public String Get(String ctx) {
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java
index 6f6d056b4..0b4820dd9 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr.java
@@ -17,7 +17,7 @@ along with this program. If not, see .
*/
package gplx.xowa.addons.apps.cfgs.mgrs.caches; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.mgrs.*;
import gplx.dbs.*;
-import gplx.xowa.addons.apps.cfgs.dbs.*; import gplx.xowa.addons.apps.cfgs.dbs.tbls.*;
+import gplx.xowa.addons.apps.cfgs.dbs.*; import gplx.xowa.addons.apps.cfgs.dbs.tbls.*; import gplx.xowa.addons.apps.cfgs.enums.*;
public class Xocfg_cache_mgr {
private final Hash_adp grps = Hash_adp_.New();
public Xocfg_cache_mgr() {
@@ -47,6 +47,7 @@ public class Xocfg_cache_mgr {
public void Set_wo_save(String ctx, String key, String val) {Set(Bool_.N, ctx, key, val);}
public void Set(boolean save, String ctx, String key, String val) {
Xocfg_cache_grp grp = Grps__get_or_load(key);
+ grp.Pub(ctx, val); // publish first; if fail will throw error
grp.Set(ctx, val);
if (save) {
if (String_.Eq(grp.Dflt(), val))
@@ -54,7 +55,6 @@ public class Xocfg_cache_mgr {
else
db_usr.Set_str(ctx, key, val);
}
- grp.Pub(ctx, val);
}
public void Del(String ctx, String key) {
Xocfg_cache_grp grp = Grps__get_or_load(key);
@@ -87,12 +87,12 @@ public class Xocfg_cache_mgr {
Xocfg_itm_row meta_itm = db_app.Tbl__itm().Select_by_key_or_null(key);
if (meta_itm == null) {
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:itm not found; key=~{0}", key);
- return new Xocfg_cache_grp(key, or);
+ return new Xocfg_cache_grp(key, or, String_.Cls_val_name);
}
Xocfg_val_row[] itms = db_usr.Tbl__val().Select_all(meta_itm.Key());
// make
- Xocfg_cache_grp rv = new Xocfg_cache_grp(key, meta_itm.Dflt());
+ Xocfg_cache_grp rv = new Xocfg_cache_grp(key, meta_itm.Dflt(), meta_itm.Type());
int len = itms.length;
for (int i = 0; i < len; i++) {
Xocfg_val_row itm = itms[0];
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr__tst.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr__tst.java
index 42a3e93d3..50362b8b0 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr__tst.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/caches/Xocfg_cache_mgr__tst.java
@@ -52,8 +52,8 @@ class Xocfg_cache_mgr__fxt {
}
public Xocfg_cache_sub_mock Sub() {return sub;} private Xocfg_cache_sub_mock sub = new Xocfg_cache_sub_mock();
public void Init__db_add(String ctx, String key, Object val) {
- Xocfg_maint_svc.Create_grp(mgr.Db_app(), id++, "test_grp", "", "", "");
- Xocfg_maint_svc.Create_itm(mgr.Db_app(), id++, key, "test_grp", "", "", "wiki", "string", "dflt", "string", "", "");
+ Xocfg_maint_svc.Create_grp(mgr.Db_app(), "test_grp", id++, "", "", "");
+ Xocfg_maint_svc.Create_itm(mgr.Db_app(), "test_grp", id++, key, "", "", "wiki", String_.Cls_val_name, "dflt", "", "");
mgr.Db_usr().Set_str(ctx, key, Object_.Xto_str_strict_or_null(val));
}
public void Init__sub(String ctx, String key, String evt) {
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java
index e2f95c416..9a38d4ed2 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm.java
@@ -18,12 +18,11 @@ along with this program. If not, see .
package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.specials.*; import gplx.xowa.addons.apps.cfgs.specials.edits.*;
import gplx.langs.mustaches.*;
import gplx.core.gfobjs.*; import gplx.langs.jsons.*;
-import gplx.xowa.addons.apps.cfgs.mgrs.types.*;
+import gplx.xowa.addons.apps.cfgs.mgrs.types.*; import gplx.xowa.addons.apps.cfgs.enums.*;
import gplx.langs.htmls.*;
public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
- private String gui_type;
private boolean edited;
- private String data_type, gui_args, gui_cls, lang, name, ctx, date;
+ private String type, html_atrs, html_cls, lang, name, ctx, date;
private byte[] val, dflt; // NOTE: data is always escaped b/c it is only consumed by mustache; EX: "<'" not "<'"
private Xocfg_type_mgr type_mgr;
public Xoedit_itm(Xocfg_type_mgr type_mgr, int id, String key, int sort) {
@@ -37,12 +36,11 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
public String Help() {return help;} private String help;
public int Sort() {return sort;} private final int sort;
- public void Load_by_meta(Bry_bfr tmp_bfr, int scope_id, String data_type, String gui_type, String gui_args, String gui_cls, String dflt_str) {
- this.data_type = data_type;
- this.gui_type = gui_type;
- this.gui_args = gui_args;
- this.gui_cls = gui_cls;
+ public void Load_by_meta(Bry_bfr tmp_bfr, String type, String dflt_str, String html_atrs, String html_cls) {
+ this.type = type;
this.dflt = Gfh_utl.Escape_html_as_bry(tmp_bfr, Bry_.new_u8(dflt_str), Bool_.N, Bool_.N, Bool_.N, Bool_.Y, Bool_.N);
+ this.html_atrs = html_atrs;
+ this.html_cls = html_cls;
}
public void Load_by_i18n(String lang, String name, String help) {
this.lang = lang;
@@ -54,8 +52,8 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
this.val = Gfh_utl.Escape_html_as_bry(tmp_bfr, Bry_.new_u8(val_str), Bool_.N, Bool_.N, Bool_.N, Bool_.Y, Bool_.N);
this.date = date;
this.edited = true;
- if ( String_.Has(gui_cls, "read"+"only")
- || String_.Eq(gui_type, gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_tid.Itm__btn.Key()))
+ if ( String_.Has(html_cls, "read"+"only")
+ || Xoitm_type_enum.To_uid(type) == Xoitm_type_enum.Tid__btn)
edited = false;
}
public void Set_data_by_dflt() {
@@ -75,14 +73,14 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
rv.Add_str("ctx", ctx);
rv.Add_bry("val", val);
rv.Add_str("date", date);
- rv.Add_str("gui", gui_type);
+ rv.Add_str("type", type);
To_html(tmp_bfr, type_mgr);
rv.Add_str("html", tmp_bfr.To_str_and_clear());
rv.Add_bool("edited", edited);
return rv;
}
private void To_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr) {
- Xoedit_itm_html.Build_html(bfr, type_mgr, key, name, data_type, gui_type, gui_args, gui_cls, val);
+ Xoedit_itm_html.Build_html(bfr, type_mgr, key, name, type, html_atrs, html_cls, val);
}
public boolean Mustache__write(String k, Mustache_bfr bfr) {
if (String_.Eq(k, "id")) bfr.Add_int(id);
@@ -94,7 +92,7 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
else if (String_.Eq(k, "ctx")) bfr.Add_str_u8(ctx);
else if (String_.Eq(k, "val")) bfr.Add_bry(val);
else if (String_.Eq(k, "date")) bfr.Add_str_u8(date);
- else if (String_.Eq(k, "gui")) bfr.Add_str_u8(gui_type);
+ else if (String_.Eq(k, "type")) bfr.Add_str_u8(type);
else if (String_.Eq(k, "html")) To_html(bfr.Bfr(), type_mgr);
return true;
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java
index fb695c8e2..02e927ea2 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/objs/Xoedit_itm_html.java
@@ -19,42 +19,44 @@ 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.mgrs.types.*;
public class Xoedit_itm_html {
- public static 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 gui_cls, byte[] 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;
- if (String_.Len_gt_0(gui_cls)) gui_cls = " " + gui_cls;
- switch (Xoitm_gui_tid.To_uid(gui_type_key)) {
- case Xoitm_gui_tid.Tid__bool:
+ public static void Build_html(Bry_bfr bfr, Xocfg_type_mgr type_mgr, String key, String name, String type, String html_atrs, String html_cls, byte[] val) {
+ // 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(html_atrs)) html_atrs = " " + html_atrs;
+ if (String_.Len_gt_0(html_cls)) html_cls = " " + html_cls;
+
+ // build html
+ switch (Xoitm_type_enum.To_uid(type)) {
+ case Xoitm_type_enum.Tid__bool:
bfr.Add_str_u8_fmt
- ( ""
- , gui_type_key, gui_args, gui_cls, key, Bry_.Eq(val, Bool_.Y_bry) ? " checked=\"checked\"" : "");
+ ( ""
+ , type, html_atrs, html_cls, key, Bry_.Eq(val, Bool_.Y_bry) ? " checked=\"checked\"" : "");
break;
- case Xoitm_gui_tid.Tid__int:
+ case Xoitm_type_enum.Tid__int:
bfr.Add_str_u8_fmt
- ( ""
- , gui_type_key, gui_args, gui_cls, key, val);
+ ( ""
+ , type, html_atrs, html_cls, key, val);
break;
- case Xoitm_gui_tid.Tid__str:
+ case Xoitm_type_enum.Tid__str:
bfr.Add_str_u8_fmt
- ( ""
- , gui_type_key, gui_args, gui_cls, key, val);
+ ( ""
+ , type, html_atrs, html_cls, key, val);
break;
- case Xoitm_gui_tid.Tid__memo:
- if (String_.Len_eq_0(gui_args)) gui_args = " rows=\"4\"";
+ case Xoitm_type_enum.Tid__memo:
+ if (String_.Len_eq_0(html_atrs)) html_atrs = " rows=\"4\"";
bfr.Add_str_u8_fmt
- ( ""
- , gui_type_key, gui_args, gui_cls, key, val);
+ ( ""
+ , type, html_atrs, html_cls, key, val);
break;
- case Xoitm_gui_tid.Tid__list:
+ case Xoitm_type_enum.Tid__list:
// get list of kvs by type
- Keyval[] kvs_ary = type_mgr.Lists__get(data_type);
+ Keyval[] kvs_ary = type_mgr.Lists__get(type);
int len = kvs_ary.length;
- if (String_.Len_eq_0(gui_args)) gui_args = "size=\"" + Int_.To_str(len) + "\"";
+ if (String_.Len_eq_0(html_atrs)) html_atrs = "size=\"" + Int_.To_str(len) + "\"";
// build html
bfr.Add_str_u8_fmt
- ( "