From 22a173ae0ba6e5c25d8883f7add0cdc256c417d1 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Tue, 13 Dec 2016 10:26:56 -0500 Subject: [PATCH] Cfg: Convert Gui - Tabs --- .../gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java | 24 ++++-- .../addons/apps/cfgs/enums/Xoitm_gui_tid.java | 2 + .../cfgs/mgrs/caches/Xocfg_cache_grp.java | 2 +- .../cfgs/mgrs/caches/Xocfg_cache_mgr.java | 4 + .../mgrs/caches/Xocfg_cache_mgr__tst.java | 4 +- .../apps/cfgs/mgrs/types/Xocfg_type_mgr.java | 13 +++- .../cfgs/specials/edits/objs/Xoedit_itm.java | 3 +- .../specials/edits/objs/Xoedit_itm_html.java | 2 +- .../maints/services/Xocfg_maint_svc.java | 2 + .../xowa/apps/cfgs/old/Xocfg_gui_mgr.java | 6 +- .../gplx/xowa/apps/cfgs/old/Xocfg_regy.java | 2 +- .../gplx/xowa/apps/cfgs/old/Xocfg_root.java | 4 +- .../gplx/xowa/apps/cfgs/old/Xocfg_root_.java | 21 ----- .../xowa/apps/cfgs/old/Xocfg_tab_btn_mgr.java | 69 ---------------- .../xowa/apps/cfgs/old/Xocfg_tab_mgr.java | 27 ------- .../xowa/apps/cfgs/old/Xocfg_tab_new_mgr.java | 50 ------------ .../src/gplx/xowa/guis/views/Xog_tab_itm.java | 11 ++- .../src/gplx/xowa/guis/views/Xog_tab_mgr.java | 78 ++++++++++--------- .../xowa/wikis/caches/Xow_page_cache.java | 10 ++- 19 files changed, 97 insertions(+), 237 deletions(-) delete mode 100644 400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_root_.java delete mode 100644 400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_btn_mgr.java delete mode 100644 400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_mgr.java delete mode 100644 400_xowa/src/gplx/xowa/apps/cfgs/old/Xocfg_tab_new_mgr.java diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java index b3d52f039..06f5579bc 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xocfg_mgr.java @@ -33,21 +33,35 @@ public class Xocfg_mgr { public void Clear() { cache_mgr.Clear(); } - public boolean Bind_bool(Xow_wiki wiki, String key, Gfo_invk sub) {return Yn.parse_or(Bind_str(wiki, key, sub), false);} - public String Bind_str(Xow_wiki wiki, String key, Gfo_invk sub) { - String ctx = wiki.Domain_itm().Abrv_xo_str(); + public void Bind_many_app(Gfo_invk sub, String... keys) {Bind_many(sub, Xocfg_mgr.Ctx__app, keys);} + public void Bind_many(Gfo_invk sub, String ctx, String... keys) { + try { + for (String key : keys) { + String val = Bind_str(ctx, key, sub); + cache_mgr.Pub(ctx, key, val); + } + } + catch (Exception e) { + Gfo_usr_dlg_.Instance.Warn_many("", "", "bind failed: ctx=~{0} keys=~{1} err=~{2}", ctx, String_.AryXtoStr(keys), Err_.Message_gplx_log(e)); + } + } + public boolean Bind_bool_app(String key, Gfo_invk sub) {return Yn.parse_or(Bind_str(Xocfg_mgr.Ctx__app, key, sub), false);} + public boolean Bind_bool(Xow_wiki wiki, String key, Gfo_invk sub) {return Yn.parse_or(Bind_str(wiki, key, sub), false);} + public String Bind_str(Xow_wiki wiki, String key, Gfo_invk sub) {return Bind_str(wiki.Domain_itm().Abrv_xo_str(), key, sub);} + public String Bind_str(String ctx, String key, Gfo_invk sub) { cache_mgr.Sub(sub, ctx, key, key); return cache_mgr.Get(ctx, key); } - public String Get_str_app(String key) {return Get_str(gplx.xowa.addons.apps.cfgs.specials.edits.objs.Xoedit_itm.Ctx__app, key);} + public String Get_str_app(String key) {return Get_str(Xocfg_mgr.Ctx__app, key);} public String Get_str(String ctx, String key) { return cache_mgr.Get(ctx, key); } - public void Set_str_app(String key, String val) {Set_str(gplx.xowa.addons.apps.cfgs.specials.edits.objs.Xoedit_itm.Ctx__app, key, val);} + public void Set_str_app(String key, String val) {Set_str(Xocfg_mgr.Ctx__app, key, val);} public void Set_str(String ctx, String key, String val) { cache_mgr.Set(ctx, key, val); } public void Del(String ctx, String key) { cache_mgr.Del(ctx, key); } + public static String Ctx__app = "app"; } 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 index 60458ad7f..6470a2e0b 100644 --- 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 @@ -47,6 +47,8 @@ public class Xoitm_gui_tid { // SERIALIZED public static String Infer_gui_type(String db_type) { if (String_.Eq(db_type, "bool")) return Xoitm_gui_tid.Str__checkbox; + else if (String_.Eq(db_type, "int")) + return Xoitm_gui_tid.Str__numeric; else if (String_.Eq(db_type, "memo")) return Xoitm_gui_tid.Str__memo; else if (String_.Eq(db_type, "io.process")) 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 b3785cb21..34f902207 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 @@ -32,7 +32,7 @@ class Xocfg_cache_grp { if (rv != null) return rv.Val(); // global match; EX: "app|key_1" - rv = (Xocfg_cache_itm)vals.Get_by(gplx.xowa.addons.apps.cfgs.specials.edits.objs.Xoedit_itm.Ctx__app); + rv = (Xocfg_cache_itm)vals.Get_by(Xocfg_mgr.Ctx__app); if (rv != null) return rv.Val(); // dflt 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 1ff108dfa..3e3585e35 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 @@ -51,6 +51,10 @@ public class Xocfg_cache_mgr { Xocfg_cache_grp grp = Grps__get_or_load(key); grp.Sub(sub, ctx, evt); } + public void Pub(String ctx, String key, String val) { + Xocfg_cache_grp grp = Grps__get_or_load(key); + grp.Pub(ctx, val); + } public void Dflt(String key, String val) { Xocfg_cache_grp grp = Grps__get_or_load(key); grp.Dflt_(val); 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 af2bf80f2..85cd60671 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 @@ -27,14 +27,14 @@ public class Xocfg_cache_mgr__tst { fxt.Test__get("en.d", "key_1", "dflt"); } @Test public void Get__app() { - String ctx = gplx.xowa.addons.apps.cfgs.specials.edits.objs.Xoedit_itm.Ctx__app; + String ctx = Xocfg_mgr.Ctx__app; fxt.Init__db_add(ctx, "key_1", "val_1"); fxt.Test__get(ctx, "key_1", "val_1"); fxt.Test__get("en.w", "key_1", "val_1"); fxt.Test__get("en.d", "key_1", "val_1"); } @Test public void Set__app() { - String ctx = gplx.xowa.addons.apps.cfgs.specials.edits.objs.Xoedit_itm.Ctx__app; + String ctx = Xocfg_mgr.Ctx__app; fxt.Init__db_add(ctx, "key_1", "123"); fxt.Init__sub(ctx, "key_1", "key_1"); fxt.Exec__set(ctx, "key_1", "234"); diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java index 4d73c7913..d1be289ee 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/mgrs/types/Xocfg_type_mgr.java @@ -21,10 +21,17 @@ public class Xocfg_type_mgr { public Xocfg_type_mgr() { this.Lists__add("list:xowa.app.security.privacy.load_mode", "mem", "url"); this.Lists__add("list:xowa.app.startup.window.mode", "previous", "maximized", "absolute", "relative", "default"); - this.Lists__add("list:xowa.app.startup.pages.type", "blank", "xowa", "absolute", "previous", "custom"); - this.Lists__add("list:xowa.gui.window.html_box.adj_type", "none", "absolute", "relative"); + this.Lists__add("list:xowa.app.startup.pages.type", "blank", "xowa", "previous", "custom"); + this.Lists__add("list:xowa.gui.window.html_box.adj_type", "none", "relative", "absolute"); this.Lists__add("list:xowa.wiki.dbs.html.basic.html_mode", Keyval_.new_("shown", "Shown"), Keyval_.new_("hdump_save", "Saved for HTML DB"), Keyval_.new_("hdump_load", "Loaded by HTML DB")); - this.Lists__add("list:xowa.wiki.database.general.zip_mode", "text", "gzip", "bz2", "xz"); + this.Lists__add("list:xowa.wiki.database.general.zip_mode", "text", "gzip", "bzip2", "xz"); + this.Lists__add("list:xowa.html.wiki.portal.missing_class", Keyval_.new_("", "Show as blue link"), Keyval_.new_("new", "Show as red link"), Keyval_.new_("xowa_display_none", "Hide")); + this.Lists__add("list:xowa.html.category.basic.missing_class", "normal", "hide", "red_link"); + this.Lists__add("list:xowa.html.tidy.general.engine", "tidy", "jtidy"); + this.Lists__add("list:xowa.addon.http_server.general.file_retrieve_mode", Keyval_.new_("wait"), Keyval_.new_("skip"), Keyval_.new_("async_server", "async server")); + this.Lists__add("list:xowa.addon.search_suggest.html_bar.search_mode", "Search", "AllPages", "AllPages_(v2)"); + this.Lists__add("list:xowa.addon.math.general.renderer", "MathJax", "LaTeX"); + this.Lists__add("list:xowa.addon.scribunto.general.engine", "luaj", "lua"); } public void Lists__add(String key, String... vals) { int len = vals.length; 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 83d4137ba..547c48087 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 @@ -51,7 +51,7 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm { this.edited = true; } public void Set_data_by_dflt() { - this.ctx = Ctx__app; + this.ctx = Xocfg_mgr.Ctx__app; this.val = dflt; this.date = String_.Empty; this.edited = false; @@ -89,7 +89,6 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm { else if (String_.Eq(k, "html")) To_html(bfr.Bfr(), type_mgr); return true; } - public static String Ctx__app = "app"; public Mustache_doc_itm[] Mustache__subs(String k) { if (String_.Eq(k, "edited")) return Mustache_doc_itm_.Ary__bool(edited); return Mustache_doc_itm_.Ary__empty; 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 f78d68af0..e684a92b9 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 @@ -31,7 +31,7 @@ public class Xoedit_itm_html { bfr.Add_str_u8_fmt("", key, data); break; case Xoitm_gui_tid.Tid__memo: - bfr.Add_str_u8_fmt("", key, data); + bfr.Add_str_u8_fmt("", key, String_.Replace(data, "<", "<")); break; case Xoitm_gui_tid.Tid__select: Keyval[] kvs_ary = type_mgr.Lists__get(data_type); diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_svc.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_svc.java index a5e25536b..0e76869b0 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_svc.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_svc.java @@ -35,6 +35,7 @@ public class Xocfg_maint_svc { // exec Xocfg_db_app db_app = Xocfg_db_app.New(app); db_app.Conn().Txn_bgn("xo__cfg_maint__upsert"); + byte[] anch_find_bry = Bry_.new_a7("