diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_map_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_map_tbl.java index 8e58356e2..f366e5f6c 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_map_tbl.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/tbls/Xocfg_map_tbl.java @@ -53,7 +53,7 @@ public class Xocfg_map_tbl implements Db_tbl { try { if (!rdr.Move_next()) return 0; Object max = rdr.Read_obj(fld__map_sort); - return max == null ? 0 : Int_.cast(max) + 1; + return max == null ? 0 : Int_.cast(max) + 10; } finally {rdr.Rls();} } 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 85cd60671..3b79a6f83 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 @@ -44,6 +44,7 @@ public class Xocfg_cache_mgr__tst { } class Xocfg_cache_mgr__fxt { private Xocfg_cache_mgr mgr = new Xocfg_cache_mgr(); + private int id; public void Clear() { gplx.dbs.Db_conn_bldr.Instance.Reg_default_mem(); Db_conn conn = Db_conn_bldr.Instance.Get_or_autocreate(true, Io_url_.new_any_("mem/xowa/wiki/en.wikipedia.org/")); @@ -51,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(), "test_grp", "", "", ""); - Xocfg_maint_svc.Create_itm(mgr.Db_app(), key, "test_grp", "", "", "wiki", "string", "dflt", "textbox", ""); + 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", "textbox", ""); 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/maints/services/Xocfg_maint_nde.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_nde.java index b16c82783..d2fbb1be2 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_nde.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_nde.java @@ -17,13 +17,15 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.cfgs.specials.maints.services; 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.maints.*; abstract class Xocfg_maint_nde implements gplx.core.brys.Bry_bfr_able { - public Xocfg_maint_nde(String key, String owner, String name, String help) { + public Xocfg_maint_nde(int id, String key, String owner, String name, String help) { + this.id = id; this.key = key; this.owner = owner; this.name = name; this.help = help; } public abstract boolean Type_is_grp(); + public int Id() {return id;} private final int id; public String Key() {return key;} private final String key; public String Owner() {return owner;} private final String owner; public String Name() {return name;} private final String name; @@ -34,12 +36,12 @@ abstract class Xocfg_maint_nde implements gplx.core.brys.Bry_bfr_able { } protected abstract void To_bfr_hook(Bry_bfr bfr); } -class Xocfg_maint_grp extends Xocfg_maint_nde { public Xocfg_maint_grp(String key, String owner, String name, String help) {super(key, owner, name, help); +class Xocfg_maint_grp extends Xocfg_maint_nde { public Xocfg_maint_grp(int id, String key, String owner, String name, String help) {super(id, key, owner, name, help); } @Override public boolean Type_is_grp() {return true;} @Override protected void To_bfr_hook(Bry_bfr bfr) {} } -class Xocfg_maint_itm extends Xocfg_maint_nde { public Xocfg_maint_itm(String key, String owner, String name, String help, String scope, String db_type, String dflt, String gui_type, String gui_args) {super(key, owner, name, help); +class Xocfg_maint_itm extends Xocfg_maint_nde { public Xocfg_maint_itm(int id, String key, String owner, String name, String help, String scope, String db_type, String dflt, String gui_type, String gui_args) {super(id, key, owner, name, help); this.scope = scope; this.db_type = db_type; this.dflt = dflt; diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser.java index 0f567d453..7aa377271 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser.java @@ -32,6 +32,7 @@ class Xocfg_maint_parser { private Xocfg_maint_nde Parse_nde(GfoMsg msg) { Ordered_hash hash = To_atr_hash(msg); // get common atrs + int id = Int_.parse(Get_atr_as_str_or_fail(hash, "id_")); String owner = Get_atr_as_str_or_fail(hash, "owner_"); String key = Get_atr_as_str_or_fail(hash, "key_"); String name = Get_atr_as_str_or_fail(hash, "name_"); @@ -40,7 +41,7 @@ class Xocfg_maint_parser { // create String nde_type = msg.Key(); if (String_.Eq(nde_type, "grp")) { - return new Xocfg_maint_grp(key, owner, name, help); + return new Xocfg_maint_grp(id, key, owner, name, help); } else if (String_.Eq(nde_type, "itm")) { String scope = Get_atr_as_str_or(hash, "scope_", ""); if (String_.Eq(scope, "")) scope = "wiki"; @@ -52,7 +53,7 @@ class Xocfg_maint_parser { if (gui_type == null) { gui_type = gplx.xowa.addons.apps.cfgs.enums.Xoitm_gui_tid.Infer_gui_type(db_type); } - return new Xocfg_maint_itm(key, owner, name, help, scope, db_type, dflt, gui_type, gui_args); + return new Xocfg_maint_itm(id, key, owner, name, help, scope, db_type, dflt, gui_type, gui_args); } else throw Err_.new_wo_type("xo.cfg_maint:unknown type", "type", nde_type); } diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser__tst.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser__tst.java index 10bfc44bd..7f4609132 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser__tst.java +++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_parser__tst.java @@ -20,13 +20,13 @@ import org.junit.*; import gplx.core.tests.*; public class Xocfg_maint_parser__tst { private final Xocfg_maint_parser__fxt fxt = new Xocfg_maint_parser__fxt(); @Test public void Parse_grp() { - fxt.Exec__parse("grp {key='key_1'; owner='owner_1'; name='name_1'; help='help_1'}" - , fxt.Make__grp("key_1", "owner_1", "name_1", "help_1") + fxt.Exec__parse("grp {id='123'; key='key_1'; owner='owner_1'; name='name_1'; help='help_1'}" + , fxt.Make__grp(123, "key_1", "owner_1", "name_1", "help_1") ); } @Test public void Parse_itm() { - fxt.Exec__parse("itm {key='key_1'; owner='owner_1'; name='name_1'; help='help_1'; scope='scope_1'; db_type='db_type_1'; dflt='dflt_1'; gui_type='gui_type_1'; gui_args='gui_args_1'}" - , fxt.Make__itm("key_1", "owner_1", "name_1", "help_1", "scope_1", "db_type_1", "dflt_1", "gui_type_1", "gui_args_1") + fxt.Exec__parse("itm {id='123'; key='key_1'; owner='owner_1'; name='name_1'; help='help_1'; scope='scope_1'; db_type='db_type_1'; dflt='dflt_1'; gui_type='gui_type_1'; gui_args='gui_args_1'}" + , fxt.Make__itm(123, "key_1", "owner_1", "name_1", "help_1", "scope_1", "db_type_1", "dflt_1", "gui_type_1", "gui_args_1") ); } } @@ -36,10 +36,10 @@ class Xocfg_maint_parser__fxt { Xocfg_maint_nde[] actl = parser.Parse(raw); Gftest.Eq__ary(expd, actl); } - public Xocfg_maint_grp Make__grp(String key, String owner, String name, String help) { - return new Xocfg_maint_grp(key, owner, name, help); + public Xocfg_maint_grp Make__grp(int id, String key, String owner, String name, String help) { + return new Xocfg_maint_grp(id, key, owner, name, help); } - public Xocfg_maint_itm Make__itm(String key, String owner, String name, String help, String scope, String db_type, String dflt, String gui_type, String gui_args) { - return new Xocfg_maint_itm(key, owner, name, help, scope, db_type, dflt, gui_type, gui_args); + public Xocfg_maint_itm Make__itm(int id, String key, String owner, String name, String help, String scope, String db_type, String dflt, String gui_type, String gui_args) { + return new Xocfg_maint_itm(id, key, owner, name, help, scope, db_type, dflt, gui_type, gui_args); } } \ No newline at end of file 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 ebc3cce64..1891b37f3 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 @@ -40,19 +40,17 @@ public class Xocfg_maint_svc { byte[] help = parser_mgr.Main().Parse_text_to_html(parser_mgr.Ctx(), Bry_.new_u8(nde.Help())); help = Bry_.Replace(help, anch_find_bry, anch_repl_bry); // replace "