From 69b56783504cd4cff363dd5c029368d03d47fddb Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Mon, 24 Oct 2016 09:16:24 -0400 Subject: [PATCH] DownloadCentral: Preserve lang / type choices next time page is opened --- .../addons/bldrs/centrals/Xobc_filter_mgr.java | 14 +++++++++++++- .../xowa/addons/bldrs/centrals/Xobc_task_mgr.java | 6 ++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_filter_mgr.java b/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_filter_mgr.java index 8a78992d9..48591d9b8 100644 --- a/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_filter_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_filter_mgr.java @@ -16,11 +16,17 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.xowa.addons.bldrs.centrals; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; +import gplx.core.gfobjs.*; import gplx.xowa.addons.bldrs.centrals.tasks.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.langs.*; public class Xobc_filter_mgr { - public static Xobc_task_itm[] Filter(Xobc_task_regy__base task_list, String lang_key_str, String type_key_str) { + private String lang_key_str = Xow_domain_itm_.Lang_key__all, type_key_str = Xow_domain_itm_.Type_key__all; + public Xobc_task_itm[] Filter(Xobc_task_regy__base task_list) {return Filter(task_list, lang_key_str, type_key_str);} + public Xobc_task_itm[] Filter(Xobc_task_regy__base task_list, String lang_key_str, String type_key_str) { + this.lang_key_str = lang_key_str; + this.type_key_str = type_key_str; + List_adp tmp = List_adp_.New(); // loop tasks and find matches @@ -38,4 +44,10 @@ public class Xobc_filter_mgr { return (Xobc_task_itm[])tmp.To_ary_and_clear(Xobc_task_itm.class); } + public Gfobj_nde Make_init_msg() { + Gfobj_nde root = Gfobj_nde.New(); + root.New_nde("langs").Add_str("active", lang_key_str); + root.New_nde("types").Add_str("active", type_key_str); + return root; + } } diff --git a/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_task_mgr.java b/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_task_mgr.java index 8d31ba4a7..b48573def 100644 --- a/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_task_mgr.java +++ b/400_xowa/src/gplx/xowa/addons/bldrs/centrals/Xobc_task_mgr.java @@ -43,6 +43,7 @@ public class Xobc_task_mgr implements Xog_json_wkr { public Xobc_user_db User_db() {return user_db;} private final Xobc_user_db user_db; public Gfo_rate_mgr Rate_mgr() {return rate_mgr;} private final Gfo_rate_mgr rate_mgr; public Xobc_step_factory Step_mgr() {return step_mgr;} private final Xobc_step_factory step_mgr; + public Xobc_filter_mgr Filter_mgr() {return filter_mgr;} private final Xobc_filter_mgr filter_mgr = new Xobc_filter_mgr(); public void Send_json(String func, Gfobj_nde data) {cbk_mgr.Send_json(cbk_trg, func, data);} public Xobc_task_mgr Load_or_init() { Gfo_log_.Instance.Info("task_mgr.load_or_init.bgn"); @@ -56,15 +57,16 @@ public class Xobc_task_mgr implements Xog_json_wkr { Gfobj_nde root = Gfobj_nde.New(); Gfobj_nde lists_nde = root.New_nde("lists"); work_mgr.Save_to(lists_nde.New_ary("work")); - todo_mgr.Save_to(lists_nde.New_ary("todo")); + todo_mgr.Save_to(lists_nde.New_ary("todo"), filter_mgr.Filter(todo_mgr)); done_mgr.Save_to(lists_nde.New_ary("done")); + root.Add_nde("filters", filter_mgr.Make_init_msg()); cbk_mgr.Send_json(cbk_trg, "xo.bldr.core.reload__recv", root); } public void Filter_todo(String lang_key, String type_key) { Gfo_log_.Instance.Info("task_mgr.filter_by_lang.bgn"); Gfobj_nde root = Gfobj_nde.New(); Gfobj_nde lists_nde = root.New_nde("lists").Add_str("list_name", "todo"); - todo_mgr.Save_to(lists_nde.New_ary("todo"), Xobc_filter_mgr.Filter(todo_mgr, lang_key, type_key)); + todo_mgr.Save_to(lists_nde.New_ary("todo"), filter_mgr.Filter(todo_mgr, lang_key, type_key)); cbk_mgr.Send_json(cbk_trg, "xo.bldr.core.reload_list__recv", root); } public void Transfer(Xobc_task_regy__base src, Xobc_task_regy__base trg, Xobc_task_itm task) {