mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Cfg: Convert rest of pages
This commit is contained in:
@@ -17,46 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.wikis.ctgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*;
|
||||
import gplx.xowa.addons.wikis.ctgs.htmls.*;
|
||||
public class Xoa_ctg_mgr implements Gfo_invk {
|
||||
public void Init_by_app(Xoae_app app) {}
|
||||
public boolean Pagecats_grouping_enabled() {return pagecats_grouping_enabled;} private boolean pagecats_grouping_enabled = false;
|
||||
public byte Missing_ctg_cls_tid() {return missing_ctg_cls_tid;} private byte missing_ctg_cls_tid = Missing_ctg_cls_red_tid;
|
||||
public byte[] Missing_ctg_cls_css() {
|
||||
switch (missing_ctg_cls_tid) {
|
||||
case Missing_ctg_cls_normal_tid: return Missing_ctg_cls_normal_css;
|
||||
case Missing_ctg_cls_hide_tid: return Missing_ctg_cls_hide_css;
|
||||
case Missing_ctg_cls_red_tid: return Missing_ctg_cls_red_css;
|
||||
default: throw Err_.new_unhandled(missing_ctg_cls_tid);
|
||||
}
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_missing_ctg_cls)) return Missing_ctg_cls_tid_print(missing_ctg_cls_tid);
|
||||
else if (ctx.Match(k, Invk_missing_ctg_cls_)) missing_ctg_cls_tid = Missing_ctg_cls_tid_parse(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_missing_ctg_cls_list)) return Options_missing_ctg_cls_list;
|
||||
else if (ctx.Match(k, Invk_pagecats_grouping_enabled)) return Yn.To_str(pagecats_grouping_enabled);
|
||||
else if (ctx.Match(k, Invk_pagecats_grouping_enabled_)) pagecats_grouping_enabled = m.ReadYn("v");
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String Invk_missing_ctg_cls = "missing_ctg_cls", Invk_missing_ctg_cls_ = "missing_ctg_cls_", Invk_missing_ctg_cls_list = "missing_ctg_cls_list", Invk_pagecats_grouping_enabled = "pagecats_grouping_enabled", Invk_pagecats_grouping_enabled_ = "pagecats_grouping_enabled_";
|
||||
private static final byte Missing_ctg_cls_normal_tid = 0, Missing_ctg_cls_hide_tid = 1, Missing_ctg_cls_red_tid = 2;
|
||||
private static final String Missing_ctg_cls_normal_str = "normal", Missing_ctg_cls_hide_str = "hide", Missing_ctg_cls_red_str = "red_link";
|
||||
private static final byte[] Missing_ctg_cls_normal_css = Bry_.new_a7(".xowa-missing-category-entry {}"), Missing_ctg_cls_hide_css = Bry_.new_a7(".xowa-missing-category-entry {display: none;}"), Missing_ctg_cls_red_css = Bry_.new_a7(".xowa-missing-category-entry {color: red;}");
|
||||
private static Keyval[] Options_missing_ctg_cls_list = Keyval_.Ary(Keyval_.new_(Missing_ctg_cls_normal_str), Keyval_.new_(Missing_ctg_cls_hide_str), Keyval_.new_(Missing_ctg_cls_red_str));
|
||||
private static byte Missing_ctg_cls_tid_parse(String v) {
|
||||
if (String_.Eq(v, Missing_ctg_cls_normal_str)) return Missing_ctg_cls_normal_tid;
|
||||
else if (String_.Eq(v, Missing_ctg_cls_hide_str)) return Missing_ctg_cls_hide_tid;
|
||||
else if (String_.Eq(v, Missing_ctg_cls_red_str)) return Missing_ctg_cls_red_tid;
|
||||
else throw Err_.new_unhandled(v);
|
||||
}
|
||||
private static String Missing_ctg_cls_tid_print(byte v) {
|
||||
switch (v) {
|
||||
case Missing_ctg_cls_normal_tid: return Missing_ctg_cls_normal_str;
|
||||
case Missing_ctg_cls_hide_tid: return Missing_ctg_cls_hide_str;
|
||||
case Missing_ctg_cls_red_tid: return Missing_ctg_cls_red_str;
|
||||
default: throw Err_.new_unhandled(v);
|
||||
}
|
||||
}
|
||||
public class Xoa_ctg_mgr {
|
||||
public static final byte Version_null = Byte_.Zero, Version_1 = 1, Version_2 = 2;
|
||||
public static final byte Tid__subc = 0, Tid__file = 1, Tid__page = 2, Tid___max = 3; // SERIALIZED; cat_link.cl_type_id
|
||||
public static final byte Hidden_n = Byte_.Zero, Hidden_y = (byte)1;
|
||||
|
||||
@@ -25,7 +25,8 @@ public class Xoctg_catpage_mgr implements Gfo_invk {
|
||||
private final Hash_adp_bry cache = Hash_adp_bry.cs();
|
||||
private final Xoctg_catpage_loader loader = new Xoctg_catpage_loader();
|
||||
private final Xoctg_fmt_grp fmt_subcs = Xoctg_fmt_grp.New__subc(), fmt_pages = Xoctg_fmt_grp.New__page(), fmt_files = Xoctg_fmt_grp.New__file();
|
||||
private final Uca_ltr_extractor ltr_extractor = new Uca_ltr_extractor(true);
|
||||
private final Uca_ltr_extractor ltr_extractor = new Uca_ltr_extractor(true);
|
||||
private String missing_cls = Str__missing_cls__red;
|
||||
public int Grp_max() {return grp_max;} private int grp_max = Grp_max_dflt;
|
||||
public Xoctg_catpage_mgr(Xow_wiki wiki) {
|
||||
this.wiki = wiki;
|
||||
@@ -40,6 +41,12 @@ public class Xoctg_catpage_mgr implements Gfo_invk {
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public byte[] Missing_ctg_cls_css() {
|
||||
if (String_.Eq(missing_cls, Str__missing_cls__normal)) return Css__missing_cls__normal;
|
||||
else if (String_.Eq(missing_cls, Str__missing_cls__hide)) return Css__missing_cls__hide;
|
||||
else if (String_.Eq(missing_cls, Str__missing_cls__red)) return Css__missing_cls__red;
|
||||
else throw Err_.new_unhandled(missing_cls);
|
||||
}
|
||||
public void Free_mem_all() {cache.Clear();}
|
||||
public Xoctg_catpage_ctg Get_or_load_or_null(byte[] page_ttl, Xoctg_catpage_url catpage_url, Xoa_ttl cat_ttl, int limit) {
|
||||
// load categories from cat dbs; exit if not found
|
||||
@@ -81,10 +88,15 @@ public class Xoctg_catpage_mgr implements Gfo_invk {
|
||||
public void Grp_max_(int v) {grp_max = v;} // TEST:
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk__collation_)) collation_mgr.Collation_name_(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Cfg__missing_class)) missing_cls = m.ReadStr("v");
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk__collation_ = "collation_";
|
||||
|
||||
public static int Grp_max_dflt = 200;
|
||||
private static final Object thread_lock = new Object();
|
||||
|
||||
private static final String Cfg__missing_class = "xowa.category.html.missing_class";
|
||||
private static final String Str__missing_cls__normal = "normal", Str__missing_cls__hide = "hide", Str__missing_cls__red = "red_link";
|
||||
private static final byte[] Css__missing_cls__normal = Bry_.new_a7(".xowa-missing-category-entry {}"), Css__missing_cls__hide = Bry_.new_a7(".xowa-missing-category-entry {display: none;}"), Css__missing_cls__red = Bry_.new_a7(".xowa-missing-category-entry {color: red;}");
|
||||
}
|
||||
|
||||
@@ -19,18 +19,20 @@ package gplx.xowa.addons.wikis.ctgs.htmls.pageboxs; import gplx.*; import gplx.x
|
||||
import gplx.xowa.htmls.core.htmls.*;
|
||||
import gplx.xowa.addons.wikis.ctgs.htmls.pageboxs.singles.*; import gplx.xowa.addons.wikis.ctgs.htmls.pageboxs.doubles.*;
|
||||
import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.addons.wikis.ctgs.dbs.*;
|
||||
public class Xoctg_pagebox_wtr {
|
||||
public class Xoctg_pagebox_wtr implements Gfo_invk {
|
||||
private final Xoctg_single_box single_box = new Xoctg_single_box();
|
||||
private final Xoctg_double_box double_box = new Xoctg_double_box();
|
||||
private final Xoctg_pagebox_hash hash = new Xoctg_pagebox_hash();
|
||||
private final Xowd_page_itm tmp_page_itm = new Xowd_page_itm();
|
||||
public boolean Grouping_enabled() {return grouping_enabled;} private boolean grouping_enabled;
|
||||
public void Init_by_wiki(Xow_wiki wiki) {
|
||||
single_box.Init_by_wiki(wiki);
|
||||
double_box.Init_by_wiki(wiki);
|
||||
wiki.App().Cfg().Bind_many_wiki(this, wiki, Cfg__grouping_enabled);
|
||||
}
|
||||
public void Write_pagebox(boolean double_mode, Bry_bfr bfr, Xow_wiki wiki, Xoa_page page, Xoctg_pagebox_itm[] pagebox_itms) {
|
||||
public void Write_pagebox(Bry_bfr bfr, Xow_wiki wiki, Xoa_page page, Xoctg_pagebox_itm[] pagebox_itms) {
|
||||
try {
|
||||
if (double_mode)
|
||||
if (grouping_enabled)
|
||||
double_box.Write_pagebox(bfr, pagebox_itms);
|
||||
else
|
||||
single_box.Write_pagebox(bfr, pagebox_itms);
|
||||
@@ -72,4 +74,10 @@ public class Xoctg_pagebox_wtr {
|
||||
|
||||
return hash.To_ary_and_clear();
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Cfg__grouping_enabled)) this.grouping_enabled = m.ReadYn("v");
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String Cfg__grouping_enabled = "xowa.category.html.grouping_enabled";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user