diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java index 3f4f46c92..82e8e4a86 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor.java @@ -66,11 +66,12 @@ public class Wdata_prop_val_visitor implements Wbase_claim_visitor { if (lo.Eq(hi) && hi.Eq(val))// lo, hi, val are same; print val only; bfr.Add(lang.Num_mgr().Format_num_by_decimal(val)); // amount; EX: 1,234 else { + Wdata_hwtr_msgs msgs = wdata_mgr.Hwtr_mgr().Msgs(); Decimal_adp lo_dif = val.Subtract(lo); Decimal_adp hi_dif = hi.Subtract(val); if (lo_dif.Eq(hi_dif)) { // lo_dif, hi_dif are same; print val±dif bfr.Add(lang.Num_mgr().Format_num_by_decimal(val)); // amount; EX: 1,234 - bfr.Add(Bry__quantity_margin_of_error); // symbol: EX: ± + bfr.Add(msgs.Sym_plusminus()); // symbol: EX: ± bfr.Add(lang.Num_mgr().Format_num_by_decimal(lo_dif)); // amount; EX: 4 } else { // lo_dif, hi_dif are diff; print lo - hi; this may not be what MW does @@ -118,8 +119,8 @@ public class Wdata_prop_val_visitor implements Wbase_claim_visitor { } return bfr == null ? bry : bfr.To_bry_and_clear(); } - public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {Write_geo(Bool_.N, bfr, wdata_mgr.Hwtr_mgr().Lbl_mgr(), itm.Lat(), itm.Lng(), itm.Alt(), itm.Prc(), itm.Glb());} - public static void Write_geo(boolean wikidata_page, Bry_bfr bfr, Wdata_lbl_mgr lbl_mgr, byte[] lat, byte[] lng, byte[] alt, byte[] prc, byte[] glb) { + public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) {Write_geo(Bool_.N, bfr, wdata_mgr.Hwtr_mgr().Lbl_mgr(), msgs, itm.Lat(), itm.Lng(), itm.Alt(), itm.Prc(), itm.Glb());} + public static void Write_geo(boolean wikidata_page, Bry_bfr bfr, Wdata_lbl_mgr lbl_mgr, Wdata_hwtr_msgs msgs, byte[] lat, byte[] lng, byte[] alt, byte[] prc, byte[] glb) { // get precision Decimal_adp precision_frac = Bry_.Eq(prc, Object_.Bry__null) ? Decimal_adp_.One : Decimal_adp_.parse(String_.new_a7(prc)); int precision_int = Math_.Log10(Decimal_adp_.One.Divide(precision_frac).To_int()); // convert precision to log10 integer; EX: .00027777 -> 3600 -> 3 @@ -143,5 +144,4 @@ public class Wdata_prop_val_visitor implements Wbase_claim_visitor { private static final byte[] Wikidata_url = Bry_.new_a7("http://www.wikidata.org/entity/"); public void Visit_system(Wbase_claim_value itm) {} - public static final byte[] Bry__quantity_margin_of_error = Bry_.new_u8("±"); } diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java index 961e12c10..13e857df2 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java @@ -156,7 +156,7 @@ public class Wdata_prop_val_visitor_ { case Wbase_claim_globecoordinate_.Tid__globe: glb = To_bry_by_str(kv.Val()); break; } } - Wdata_prop_val_visitor.Write_geo(Bool_.Y, bfr, wdata_mgr.Hwtr_mgr().Lbl_mgr(), lat, lng, alt, prc, glb); + Wdata_prop_val_visitor.Write_geo(Bool_.Y, bfr, wdata_mgr.Hwtr_mgr().Lbl_mgr(), wdata_mgr.Hwtr_mgr().Msgs(), lat, lng, alt, prc, glb); } private static void Write_langtext(Bry_bfr bfr, byte[] page_url, Keyval[] kvs) { byte[] text = null; diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java index c0cda5f67..cbdd3150d 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java @@ -136,7 +136,7 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { Xoapi_toggle_mgr toggle_mgr = app.Api_root().Html().Page().Toggle_mgr(); Xoapi_wikibase wikibase_api = app.Api_root().Xtns().Wikibase(); hwtr_mgr = new Wdata_hwtr_mgr(); - hwtr_mgr.Init_by_ctor(wikibase_api, new Wdata_lbl_wkr_wiki(wikibase_api, this), gplx.langs.htmls.encoders.Gfo_url_encoder_.Href, toggle_mgr, app.Usere().Wiki().Xwiki_mgr()); + hwtr_mgr.Init_by_ctor(wikibase_api, this, new Wdata_lbl_wkr_wiki(wikibase_api, this), gplx.langs.htmls.encoders.Gfo_url_encoder_.Href, toggle_mgr, app.Usere().Wiki().Xwiki_mgr()); this.Hwtr_msgs_make(); Gfo_evt_mgr_.Sub_same_many(app.Usere(), this, Xoue_user.Evt_lang_changed); } @@ -146,7 +146,7 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { Xowe_wiki cur_wiki = this.Wdata_wiki(); cur_wiki.Xtn_mgr().Xtn_wikibase().Load_msgs(cur_wiki, new_lang); Wdata_hwtr_msgs hwtr_msgs = Wdata_hwtr_msgs.new_(cur_wiki.Msg_mgr()); - hwtr_mgr.Init_by_lang(hwtr_msgs); + hwtr_mgr.Init_by_lang(new_lang, hwtr_msgs); } public static void Write_json_as_html(Json_parser jdoc_parser, Bry_bfr bfr, byte[] data_raw) { bfr.Add(Xoh_consts.Span_bgn_open).Add(Xoh_consts.Id_atr).Add(Html_json_id).Add(Xoh_consts.__end_quote); // diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java index a92445866..c634d4e80 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr_fxt.java @@ -40,8 +40,9 @@ public class Wdata_wiki_mgr_fxt { parser_fxt.Reset(); } return this; - } private Xoae_app app; private Xowe_wiki wiki; private Wdata_wiki_mgr wdata_mgr; private Wdata_doc_bldr wdoc_bldr; + } private Xoae_app app; private Xowe_wiki wiki; private Wdata_doc_bldr wdoc_bldr; public Xoae_app App() {return app;} + public Wdata_wiki_mgr Wdata_mgr() {return wdata_mgr;} private Wdata_wiki_mgr wdata_mgr; public Xop_fxt Parser_fxt() {return parser_fxt;} private Xop_fxt parser_fxt; public void Init_lang_fallbacks(String... fallbacks) { wiki.Lang().Fallback_bry_(Bry_.new_a7(String_.Concat_with_str(",", fallbacks))); diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java index 38f345713..e0d17109f 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_fmtr__claim_grp.java @@ -17,17 +17,21 @@ along with this program. If not, see . */ package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.core.brys.fmtrs.*; +import gplx.xowa.langs.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; import gplx.xowa.apps.apis.xowa.html.*; class Wdata_fmtr__claim_grp implements gplx.core.brys.Bfr_arg { private Wdata_fmtr__claim_tbl fmtr_tbl = new Wdata_fmtr__claim_tbl(); private boolean is_empty; private Xoapi_toggle_itm toggle_itm; private Wdata_toc_data toc_data; - public void Init_by_ctor(Wdata_toc_data toc_data, Xoapi_toggle_mgr toggle_mgr, Wdata_lbl_mgr lbl_mgr) {this.toc_data = toc_data; this.toggle_itm = toggle_mgr.Get_or_new("wikidatawiki-claim"); fmtr_tbl.Init_by_ctor(lbl_mgr);} - public void Init_by_lang(Wdata_hwtr_msgs msgs) { + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_toc_data toc_data, Xoapi_toggle_mgr toggle_mgr, Wdata_lbl_mgr lbl_mgr) { + this.toc_data = toc_data; this.toggle_itm = toggle_mgr.Get_or_new("wikidatawiki-claim"); + fmtr_tbl.Init_by_ctor(wdata_mgr, lbl_mgr); + } + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) { toc_data.Orig_(msgs.Claim_tbl_hdr()); toggle_itm.Init_msgs(msgs.Toggle_title_y(), msgs.Toggle_title_n()); - fmtr_tbl.Init_by_lang(msgs); + fmtr_tbl.Init_by_lang(lang, msgs); } public void Init_by_wdoc(byte[] ttl, Ordered_hash list) { int list_count = list.Count(); @@ -53,9 +57,9 @@ class Wdata_fmtr__claim_grp implements gplx.core.brys.Bfr_arg { class Wdata_fmtr__claim_tbl implements gplx.core.brys.Bfr_arg { private Wdata_fmtr__claim_row fmtr_row = new Wdata_fmtr__claim_row(); private Wdata_lbl_mgr lbl_mgr; private Ordered_hash list; private byte[] ttl; - public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr; fmtr_row.Init_by_ctor(lbl_mgr);} - public void Init_by_lang(Wdata_hwtr_msgs msgs) { - fmtr_row.Init_by_lang(msgs); + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr; fmtr_row.Init_by_ctor(wdata_mgr, lbl_mgr);} + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) { + fmtr_row.Init_by_lang(lang, msgs); } public void Init_by_wdoc(byte[] ttl, Ordered_hash list) { this.list = list; @@ -88,24 +92,27 @@ class Wdata_fmtr__claim_row implements gplx.core.brys.Bfr_arg { private Wdata_visitor__html_wtr claim_html_wtr = new Wdata_visitor__html_wtr(); private Wdata_fmtr__qual_tbl fmtr_qual = new Wdata_fmtr__qual_tbl(); private Wdata_fmtr__ref_tbl fmtr_ref = new Wdata_fmtr__ref_tbl(); - private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs; + private Wdata_wiki_mgr wdata_mgr; private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs; + private Xol_lang_itm lang; private Wbase_claim_grp claim_grp; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255); - public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) { + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_lbl_mgr lbl_mgr) { this.lbl_mgr = lbl_mgr; - fmtr_qual.Init_by_ctor(lbl_mgr); - fmtr_ref.Init_by_ctor(lbl_mgr); + this.wdata_mgr = wdata_mgr; + fmtr_qual.Init_by_ctor(wdata_mgr, lbl_mgr); + fmtr_ref.Init_by_ctor(wdata_mgr, lbl_mgr); } - public void Init_by_lang(Wdata_hwtr_msgs msgs) { + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) { + this.lang = lang; this.msgs = msgs; - fmtr_qual.Init_by_lang(msgs); - fmtr_ref.Init_by_lang(msgs); + fmtr_qual.Init_by_lang(lang, msgs); + fmtr_ref.Init_by_lang(lang, msgs); } public void Init_by_grp(byte[] ttl, Wbase_claim_grp claim_grp) { this.ttl = ttl; this.claim_grp = claim_grp; } public void Bfr_arg__add(Bry_bfr bfr) { int len = claim_grp.Len(); - claim_html_wtr.Init(ttl, tmp_bfr, msgs, lbl_mgr); + claim_html_wtr.Init(tmp_bfr, wdata_mgr, msgs, lbl_mgr, lang, ttl); for (int i = 0; i < len; ++i) { Wbase_claim_base itm = claim_grp.Get_at(i); itm.Welcome(claim_html_wtr); @@ -147,9 +154,9 @@ class Wdata_fmtr__claim_row implements gplx.core.brys.Bfr_arg { } class Wdata_fmtr__qual_tbl implements gplx.core.brys.Bfr_arg { private Wdata_fmtr__qual_row fmtr_row = new Wdata_fmtr__qual_row(); private Wbase_claim_base claim; - public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {fmtr_row.Init_by_ctor(lbl_mgr);} - public void Init_by_lang(Wdata_hwtr_msgs msgs) { - fmtr_row.Init_by_lang(msgs); + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_lbl_mgr lbl_mgr) {fmtr_row.Init_by_ctor(wdata_mgr, lbl_mgr);} + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) { + fmtr_row.Init_by_lang(lang, msgs); } public void Init_by_claim(byte[] ttl, Wbase_claim_base claim) { this.claim = claim; @@ -169,14 +176,15 @@ class Wdata_fmtr__qual_tbl implements gplx.core.brys.Bfr_arg { } class Wdata_fmtr__qual_row implements gplx.core.brys.Bfr_arg { private byte[] ttl; private Wdata_visitor__html_wtr claim_html_wtr = new Wdata_visitor__html_wtr(); - private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs; + private Wdata_wiki_mgr wdata_mgr; private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs; + private Xol_lang_itm lang; private Wbase_claim_grp_list quals; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255); - public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr;} - public void Init_by_lang(Wdata_hwtr_msgs msgs) {this.msgs = msgs;} + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_lbl_mgr lbl_mgr) {this.wdata_mgr = wdata_mgr; this.lbl_mgr = lbl_mgr;} + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) {this.lang = lang; this.msgs = msgs;} public void Init_by_grp(byte[] ttl, Wbase_claim_grp_list quals) {this.ttl = ttl; this.quals = quals;} public void Bfr_arg__add(Bry_bfr bfr) { int len = quals.Len(); - claim_html_wtr.Init(ttl, tmp_bfr, msgs, lbl_mgr); + claim_html_wtr.Init(tmp_bfr, wdata_mgr, msgs, lbl_mgr, lang, ttl); for (int i = 0; i < len; ++i) { Wbase_claim_grp grp = quals.Get_at(i); int grp_len = grp.Len(); @@ -211,9 +219,9 @@ class Wdata_fmtr__qual_row implements gplx.core.brys.Bfr_arg { } class Wdata_fmtr__ref_tbl implements gplx.core.brys.Bfr_arg { private Wdata_fmtr__ref_row fmtr_row = new Wdata_fmtr__ref_row(); private Wbase_claim_base claim; - public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {fmtr_row.Init_by_ctor(lbl_mgr);} - public void Init_by_lang(Wdata_hwtr_msgs msgs) { - fmtr_row.Init_by_lang(msgs); + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_lbl_mgr lbl_mgr) {fmtr_row.Init_by_ctor(wdata_mgr, lbl_mgr);} + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) { + fmtr_row.Init_by_lang(lang, msgs); } public void Init_by_claim(byte[] ttl, Wbase_claim_base claim) { this.claim = claim; @@ -243,15 +251,16 @@ class Wdata_fmtr__ref_tbl implements gplx.core.brys.Bfr_arg { } class Wdata_fmtr__ref_row implements gplx.core.brys.Bfr_arg { private byte[] ttl; private Wdata_visitor__html_wtr claim_html_wtr = new Wdata_visitor__html_wtr(); - private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs; + private Wdata_wiki_mgr wdata_mgr; private Wdata_lbl_mgr lbl_mgr; private Wdata_hwtr_msgs msgs; + private Xol_lang_itm lang; private Bry_bfr tmp_bfr = Bry_bfr_.Reset(255); private Wbase_references_grp[] ref_grps; - public void Init_by_ctor(Wdata_lbl_mgr lbl_mgr) {this.lbl_mgr = lbl_mgr;} - public void Init_by_lang(Wdata_hwtr_msgs msgs) {this.msgs = msgs;} + public void Init_by_ctor(Wdata_wiki_mgr wdata_mgr, Wdata_lbl_mgr lbl_mgr) {this.wdata_mgr = wdata_mgr; this.lbl_mgr = lbl_mgr;} + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) {this.lang = lang; this.msgs = msgs;} public void Init_by_grp(byte[] ttl, Wbase_references_grp[] ref_grps) {this.ttl = ttl; this.ref_grps = ref_grps;} public void Bfr_arg__add(Bry_bfr bfr) { int len = ref_grps.length; - claim_html_wtr.Init(ttl, tmp_bfr, msgs, lbl_mgr); + claim_html_wtr.Init(tmp_bfr, wdata_mgr, msgs, lbl_mgr, lang, ttl); for (int i = 0; i < len; ++i) { Wbase_references_grp grp_itm = ref_grps[i]; Wbase_claim_grp_list grp = grp_itm.References(); diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java index a0348130f..34aa1b37a 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr.java @@ -18,6 +18,7 @@ along with this program. If not, see . package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.core.brys.fmtrs.*; import gplx.langs.htmls.encoders.*; +import gplx.xowa.langs.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.apps.apis.xowa.html.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.apps.apis.xowa.xtns.*; public class Wdata_hwtr_mgr { private final Bry_bfr bfr = Bry_bfr_.Reset(Io_mgr.Len_mb); @@ -33,10 +34,10 @@ public class Wdata_hwtr_mgr { public Bry_fmtr Fmtr_main() {return fmtr_main;} private final Bry_fmtr fmtr_main = Bry_fmtr.new_("~{oview}~{toc}~{claims}~{links}~{labels}~{descriptions}~{aliases}~{json}", "oview", "toc", "claims", "links", "labels", "descriptions", "aliases", "json"); public Wdata_hwtr_msgs Msgs() {return msgs;} private Wdata_hwtr_msgs msgs; public Wdata_lbl_mgr Lbl_mgr() {return lbl_mgr;} private final Wdata_lbl_mgr lbl_mgr = new Wdata_lbl_mgr(); - public void Init_by_ctor(Xoapi_wikibase wikibase_api, Wdata_lbl_wkr lbl_wkr, Gfo_url_encoder href_encoder, Xoapi_toggle_mgr toggle_mgr, Xow_xwiki_mgr xwiki_mgr) { + public void Init_by_ctor(Xoapi_wikibase wikibase_api, Wdata_wiki_mgr wdata_mgr, Wdata_lbl_wkr lbl_wkr, Gfo_url_encoder href_encoder, Xoapi_toggle_mgr toggle_mgr, Xow_xwiki_mgr xwiki_mgr) { lbl_mgr.Wkr_(lbl_wkr); fmtr_oview.Init_by_ctor(wikibase_api, href_encoder); - fmtr_claim.Init_by_ctor(new Wdata_toc_data(fmtr_toc, href_encoder), toggle_mgr, lbl_mgr); + fmtr_claim.Init_by_ctor(wdata_mgr, new Wdata_toc_data(fmtr_toc, href_encoder), toggle_mgr, lbl_mgr); fmtr_slink.Init_by_ctor(lang_sorter, toggle_mgr, lbl_mgr, href_encoder, fmtr_toc, xwiki_mgr); fmtr_label.Init_by_ctor(new Wdata_toc_data(fmtr_toc, href_encoder), lang_sorter, toggle_mgr, "wikidatawiki-label", new Wdata_fmtr__langtext_row_base()); fmtr_descr.Init_by_ctor(new Wdata_toc_data(fmtr_toc, href_encoder), lang_sorter, toggle_mgr, "wikidatawiki-descr", new Wdata_fmtr__langtext_row_base()); @@ -45,11 +46,11 @@ public class Wdata_hwtr_mgr { lang_sorter.Langs_(wikibase_api.Sort_langs()); Gfo_evt_mgr_.Sub_same_many(wikibase_api, lang_sorter, Xoapi_wikibase.Evt_sort_langs_changed); } - public void Init_by_lang(Wdata_hwtr_msgs msgs) { + public void Init_by_lang(Xol_lang_itm lang, Wdata_hwtr_msgs msgs) { this.msgs = msgs; fmtr_toc.Init_by_lang(msgs); fmtr_oview.Init_by_lang(lang_sorter.Langs()[0], msgs); - fmtr_claim.Init_by_lang(msgs); + fmtr_claim.Init_by_lang(lang, msgs); fmtr_slink.Init_by_lang(msgs); fmtr_label.Init_by_lang(msgs, msgs.Label_tbl_hdr(), msgs.Label_col_hdr()); fmtr_descr.Init_by_lang(msgs, msgs.Descr_tbl_hdr(), msgs.Descr_col_hdr()); diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java index b8d7e5738..e5f7fcec2 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_mgr_tst.java @@ -291,8 +291,8 @@ class Wdata_hwtr_mgr_fxt { Xoapi_toggle_mgr toggle_mgr = new Xoapi_toggle_mgr(); wdata_fxt.Init(); toggle_mgr.Ctor_by_app(wdata_fxt.App()); // must init, else null error - doc_hwtr.Init_by_ctor(new Xoapi_wikibase(), new Wdata_lbl_wkr__test(resolved_ttls), Gfo_url_encoder_.Href, toggle_mgr, new Xow_xwiki_mgr(wdata_fxt.Wiki())); - doc_hwtr.Init_by_lang(msgs); + doc_hwtr.Init_by_ctor(new Xoapi_wikibase(), wdata_fxt.Wdata_mgr(), new Wdata_lbl_wkr__test(resolved_ttls), Gfo_url_encoder_.Href, toggle_mgr, new Xow_xwiki_mgr(wdata_fxt.Wiki())); + doc_hwtr.Init_by_lang(wdata_fxt.Wiki().Lang(), msgs); } resolved_ttls.Clear(); doc_hwtr.Lbl_mgr().Clear(); @@ -308,7 +308,7 @@ class Wdata_hwtr_mgr_fxt { public void Test_claim_val(Wbase_claim_base claim, String expd) { doc_hwtr.Init_by_wdoc(wdoc_bldr.Add_claims(claim).Xto_wdoc()); Bry_bfr tmp_bfr = Bry_bfr_.New(); - Wdata_visitor__html_wtr html_wtr = new Wdata_visitor__html_wtr().Init(Bry_.Empty, tmp_bfr, doc_hwtr.Msgs(), doc_hwtr.Lbl_mgr()); + Wdata_visitor__html_wtr html_wtr = new Wdata_visitor__html_wtr().Init(tmp_bfr, wdata_fxt.Wdata_mgr(), doc_hwtr.Msgs(), doc_hwtr.Lbl_mgr(), wdata_fxt.Wiki().Lang(), Bry_.Empty); claim.Welcome(html_wtr); byte[] actl = tmp_bfr.To_bry_and_clear(); Tfds.Eq(expd, String_.new_u8(actl)); diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java index fbf9112e7..b0e5370f6 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr.java @@ -17,12 +17,16 @@ along with this program. If not, see . */ package gplx.xowa.xtns.wbases.hwtrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.wbases.*; import gplx.core.brys.fmtrs.*; +import gplx.xowa.langs.*; import gplx.xowa.xtns.wbases.core.*; import gplx.xowa.xtns.wbases.claims.*; import gplx.xowa.xtns.wbases.claims.enums.*; import gplx.xowa.xtns.wbases.claims.itms.*; class Wdata_visitor__html_wtr implements Wbase_claim_visitor { - private byte[] ttl; private Bry_bfr tmp_bfr; private Wdata_hwtr_msgs msgs; private Wdata_lbl_mgr lbl_mgr; + private Wdata_wiki_mgr wdata_mgr; private Wdata_hwtr_msgs msgs; private Wdata_lbl_mgr lbl_mgr; + private Xol_lang_itm lang; + private byte[] ttl; private Bry_bfr tmp_bfr; private final Bry_fmtr tmp_time_fmtr = Bry_fmtr.new_(); private final Bry_bfr tmp_time_bfr = Bry_bfr_.New_w_size(32); - public Wdata_visitor__html_wtr Init(byte[] ttl, Bry_bfr tmp_bfr, Wdata_hwtr_msgs msgs, Wdata_lbl_mgr lbl_mgr) { - this.ttl = ttl; this.tmp_bfr = tmp_bfr; this.msgs = msgs; this.lbl_mgr = lbl_mgr; + public Wdata_visitor__html_wtr Init(Bry_bfr tmp_bfr, Wdata_wiki_mgr wdata_mgr, Wdata_hwtr_msgs msgs, Wdata_lbl_mgr lbl_mgr, Xol_lang_itm lang, byte[] ttl) { + this.wdata_mgr = wdata_mgr; this.msgs = msgs; this.lbl_mgr = lbl_mgr; this.lang = lang; + this.tmp_bfr = tmp_bfr; this.ttl = ttl; return this; } public void Visit_str(Wbase_claim_string itm) { @@ -42,41 +46,17 @@ class Wdata_visitor__html_wtr implements Wbase_claim_visitor { tmp_bfr.Add_byte(Byte_ascii.Space).Add_byte(Byte_ascii.Brack_bgn).Add(itm.Lang()).Add_byte(Byte_ascii.Brack_end); } public void Visit_quantity(Wbase_claim_quantity itm) { - try { - Decimal_adp val = itm.Amount_as_num(); - Decimal_adp hi = itm.Ubound_as_num(); - Decimal_adp lo = itm.Lbound_as_num(); - Decimal_adp hi_diff = hi.Subtract(val); - Decimal_adp lo_diff = val.Subtract(lo); - float hi_diff_val = (float)hi_diff.To_double(); - float lo_diff_val = (float)lo_diff.To_double(); - tmp_bfr.Add(itm.Amount()).Add_byte_space(); - if (hi_diff.Eq(lo_diff)) { // delta is same in both directions; EX: val=50 hi=60 lo=40 -> hi_diff == lo_diff == 10 - if (hi_diff_val != 0) // skip if 0 - tmp_bfr.Add(msgs.Sym_plusminus()).Add_str_a7(hi_diff.To_str()); - } - else { // delta is diff in both directions; EX: val=50 hi=60 lo=30 -> hi_diff == 10, lo_diff == 20 - if (hi_diff_val != 0) // skip if 0 - tmp_bfr.Add(msgs.Sym_plus()).Add_str_a7(hi_diff.To_str()); - if (lo_diff_val != 0) { // skip if 0 - if (hi_diff_val != 0) tmp_bfr.Add(Time_plus_minus_spr); - tmp_bfr.Add(msgs.Sym_minus()).Add_str_a7(lo_diff.To_str()); - } - } - byte[] unit = itm.Unit(); - if (!Bry_.Eq(unit, Wbase_claim_quantity.Unit_1)) - tmp_bfr.Add_byte_space().Add(unit); - } catch (Exception e) { - Gfo_usr_dlg_.Instance.Warn_many("", "", "failed to write quantity; ttl=~{0} pid=~{1} err=~{2}", ttl, itm.Pid(), Err_.Message_gplx_full(e)); - } - } private static final byte[] Time_plus_minus_spr = Bry_.new_a7(" / "); - public void Visit_time(Wbase_claim_time itm) {itm.Write_to_bfr(tmp_bfr, tmp_time_bfr, tmp_time_fmtr, msgs, ttl);} + Wdata_prop_val_visitor.Write_quantity(tmp_bfr, wdata_mgr, lang, itm.Amount(), itm.Lbound(), itm.Ubound(), itm.Unit()); + } public void Visit_globecoordinate(Wbase_claim_globecoordinate itm) { - Wdata_prop_val_visitor.Write_geo(Bool_.Y, tmp_bfr, lbl_mgr, itm.Lat(), itm.Lng(), itm.Alt(), itm.Prc(), itm.Glb()); + Wdata_prop_val_visitor.Write_geo(Bool_.Y, tmp_bfr, lbl_mgr, msgs, itm.Lat(), itm.Lng(), itm.Alt(), itm.Prc(), itm.Glb()); + } + public void Visit_time(Wbase_claim_time itm) { + itm.Write_to_bfr(tmp_bfr, tmp_time_bfr, tmp_time_fmtr, msgs, ttl); } public void Visit_system(Wbase_claim_value itm) { switch (itm.Snak_tid()) { - case Wbase_claim_value_type_.Tid__somevalue: tmp_bfr.Add(msgs.Val_tid_somevalue()); break; + case Wbase_claim_value_type_.Tid__somevalue: tmp_bfr.Add(msgs.Val_tid_somevalue()); break; case Wbase_claim_value_type_.Tid__novalue: tmp_bfr.Add(msgs.Val_tid_novalue()); break; } } diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java index 88718f46c..01e2248ab 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_visitor__html_wtr_tst.java @@ -37,22 +37,22 @@ public class Wdata_visitor__html_wtr_tst { @Test public void Quantity_ubound_lbound() { fxt .Test_claim_val - ( fxt.Wdata_fxt().Make_claim_quantity(1, "50", "units", "60", "30") - , "50 +10 / -20 units" + ( fxt.Wdata_fxt().Make_claim_quantity(1, "50", "", "60", "30") + , "30-60" ); } @Test public void Quantity_same() { fxt .Test_claim_val - ( fxt.Wdata_fxt().Make_claim_quantity(1, "50", "units", "60", "40") - , "50 ±10 units" + ( fxt.Wdata_fxt().Make_claim_quantity(1, "50", "1", "60", "40") + , "50±10" ); } @Test public void Quantity_frac() { fxt .Test_claim_val - ( fxt.Wdata_fxt().Make_claim_quantity(1, "+0.1234", "units", "+0.1235", "+0.1233") - , "+0.1234 ±0.0001 units" + ( fxt.Wdata_fxt().Make_claim_quantity(1, "+0.1234", "1", "+0.1235", "+0.1233") + , "0.1234±0.0001" ); } @Test public void Entity_qid() {