1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2016-01-03 21:27:38 -05:00
parent 9509363f46
commit 096045614c
647 changed files with 11693 additions and 7648 deletions

View File

@@ -94,9 +94,9 @@ public class Dbui_tbl_itm__bmk implements Dbui_tbl_itm {
private Dbui_row_itm Get_ui_row(Xoud_bmk_itm_row row) {return Get_ui_row(Int_.To_bry(row.Id()), row.Name(), row.Url(), row.Comment());}
private Dbui_row_itm Get_ui_row(byte[] pkey, byte[] name, byte[] url, byte[] comment) {
Dbui_val_itm[] vals = new Dbui_val_itm[3];
vals[0] = new Dbui_val_itm(name, Html_utl.Escape_html_as_bry(tmp_bfr, name));
vals[1] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
vals[2] = new Dbui_val_itm(comment, Html_utl.Escape_html_as_bry(comment));
vals[0] = new Dbui_val_itm(name, Gfh_utl.Escape_html_as_bry(tmp_bfr, name));
vals[1] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Gfh_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
vals[2] = new Dbui_val_itm(comment, Gfh_utl.Escape_html_as_bry(comment));
return new Dbui_row_itm(this, pkey, vals);
}
private String Fail_missing_row(byte[] row_pkey) {

View File

@@ -46,9 +46,17 @@ public class Xoud_cfg_mgr {
else
return Bry_.new_u8(rv);
}
public void Update_bry(String key, byte[] val) {Update_bry("", key, val);}
public void Update_bry(String grp, String key, byte[] val) {tbl.Update_bry(grp, key, val);}
public void Insert_bry(String key, byte[] val) {Insert_bry("", key, val);}
public void Upsert_int(String grp, String key, int val) {
int exists = Select_int_or(grp, key, Int_.Min_value);
if (exists == Int_.Min_value)
Insert_int(grp, key, val);
else
Update_int(grp, key, val);
}
public void Update_bry(String key, byte[] val) {Update_bry("", key, val);}
public void Update_bry(String grp, String key, byte[] val) {tbl.Update_bry(grp, key, val);}
public void Update_int(String grp, String key, int val) {tbl.Update_int(grp, key, val);}
public void Insert_bry(String key, byte[] val) {Insert_bry("", key, val);}
public void Insert_bry(String grp, String key, byte[] val) {tbl.Insert_bry(grp, key, val);}
public void Insert_int(String grp, String key, int val) {tbl.Insert_int(grp, key, val);}
public int Next_id(String tbl_name) {

View File

@@ -20,7 +20,7 @@ public class Xoud_id_mgr {
private Xoud_cfg_mgr cfg_mgr;
public Xoud_id_mgr(Xoud_cfg_mgr cfg_mgr) {this.cfg_mgr = cfg_mgr;}
public int Get_next(String key) {return cfg_mgr.Select_int_or(Grp_key, key, 1);}
public void Set_next(String key, int v) {cfg_mgr.Insert_int(Grp_key, key, v);}
public void Set_next(String key, int v) {cfg_mgr.Upsert_int(Grp_key, key, v);}
public int Get_next_and_save(String key) {
int rv = Get_next(key);
Set_next(key, rv + 1);

View File

@@ -65,7 +65,7 @@ public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
private Dbui_row_itm Get_ui_row(Xoud_history_row row) {return Get_ui_row(Int_.To_bry(row.Id()), row.Wiki(), row.Url(), row.Count(), row.Time());}
private Dbui_row_itm Get_ui_row(byte[] pkey, byte[] wiki, byte[] url, int count, DateAdp time) {
Dbui_val_itm[] vals = new Dbui_val_itm[4];
vals[0] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
vals[0] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Gfh_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
vals[1] = new Dbui_val_itm(wiki, wiki);
byte[] count_bry = Int_.To_bry(count);
vals[2] = new Dbui_val_itm(count_bry, count_bry);

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.users.history; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
import gplx.core.brys.fmtrs.*;
import gplx.xowa.specials.*;
public class Xou_history_html extends gplx.core.brys.Bfr_arg_base implements Xows_page {
public class Xou_history_html implements gplx.core.brys.Bfr_arg, Xows_page {
public Xows_special_meta Special_meta() {return Xows_special_meta_.Itm__page_history;}
public void Special_gen(Xowe_wiki wiki, Xoae_page page, Xoa_url url, Xoa_ttl ttl) {
this.app = wiki.Appe(); this.mgr = app.Usere().History_mgr();
@@ -27,7 +27,7 @@ public class Xou_history_html extends gplx.core.brys.Bfr_arg_base implements Xow
html_grp.Bld_bfr_many(bfr, this);
page.Data_raw_(bfr.To_bry_and_rls());
}
@Override public void Bfr_arg__add(Bry_bfr bfr) {
public void Bfr_arg__add(Bry_bfr bfr) {
int len = mgr.Len();
for (int i = 0; i < len; i++) {
Xou_history_itm itm = mgr.Get_at(i);

View File

@@ -19,7 +19,7 @@ package gplx.xowa.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xo
import gplx.langs.htmls.*;
class Prefs_html_wtr {
public Prefs_html_wtr(Prefs_mgr prefs_mgr) {this.prefs_mgr = prefs_mgr;} Prefs_mgr prefs_mgr; Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
public void Write(Bry_bfr bfr, byte[] src, Html_nde hnde, int prop_idx, byte[] trg_type, byte[] trg_val) {
public void Write(Bry_bfr bfr, byte[] src, Gfh_nde hnde, int prop_idx, byte[] trg_type, byte[] trg_val) {
Object prop_val = Eval_prop_get(hnde);
byte elem_type = Prefs_mgr.Elem_tid_tid_of(hnde);
bfr.Add_mid(src, hnde.Tag_lhs_bgn(), hnde.Tag_lhs_end() - 1);
@@ -32,25 +32,25 @@ class Prefs_html_wtr {
}
bfr.Add_mid(src, hnde.Tag_rhs_bgn(), hnde.Tag_rhs_end());
}
private void Write_input(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
private void Write_input(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
Write__value_atr(bfr, prop_val); // " value='abc'"
Write__nde_end(bfr); // ">"
}
private void Write_textarea(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
private void Write_textarea(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
Write__nde_end(bfr); // ">"
bfr.Add(Html_utl.Escape_html_as_bry(Bry_.new_u8(Object_.Xto_str_strict_or_empty(prop_val))));
bfr.Add(Gfh_utl.Escape_html_as_bry(Bry_.new_u8(Object_.Xto_str_strict_or_empty(prop_val))));
// "abcde"
}
private void Write_checkbox(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
private void Write_checkbox(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
boolean prop_val_is_true = String_.Eq((String)prop_val, "y");
if (prop_val_is_true)
bfr.Add(Atr_stub_checked); // " checked='checked'"
Write__nde_end(bfr); // ">"
}
private void Write_select(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
private void Write_select(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
KeyVal[] options_list = Get_select_options(hnde);
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
Write__nde_end(bfr); // ">"
@@ -68,14 +68,14 @@ class Prefs_html_wtr {
bfr.Add(Nde_stub_option_end); // "</option>\n"
}
}
private void Write_io(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
private void Write_io(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
Write__value_atr(bfr, prop_val); // " value='abc'"
Write__nde_end(bfr); // ">"
Write__tag_end(bfr, hnde); // "</input>"
Write_io_btn(bfr, hnde, prop_idx);
}
private void Write_io_btn(Bry_bfr bfr, Html_nde hnde, int prop_idx) {
private void Write_io_btn(Bry_bfr bfr, Gfh_nde hnde, int prop_idx) {
bfr.Add_str_a7("<button id='xowa_prop_").Add_int_variable(prop_idx).Add_str_a7("_io").Add_byte(Byte_ascii.Apos);
bfr.Add_str_a7(" class='options_button' onclick='xowa_io_select(\"file\", \"");
bfr.Add_str_a7("xowa_prop_").Add_int_variable(prop_idx);
@@ -91,7 +91,7 @@ class Prefs_html_wtr {
, Nde_stub_option_bgn = Bry_.new_a7(" <option value='")
, Nde_stub_option_end = Bry_.new_a7("</option>\n")
;
Object Eval_prop_get(Html_nde hnde) {
Object Eval_prop_get(Gfh_nde hnde) {
byte[] cmd = hnde.Atrs_val_by_key_bry(Prefs_mgr.Bry_prop);
if (cmd == null)
cmd = hnde.Atrs_val_by_key_bry(Prefs_mgr.Bry_prop_get);
@@ -99,7 +99,7 @@ class Prefs_html_wtr {
try {return prefs_mgr.Eval(tmp_bfr.To_bry_and_clear());}
catch (Exception e) {return Err_.Message_gplx_full(e);}
}
KeyVal[] Get_select_options(Html_nde hnde) {
KeyVal[] Get_select_options(Gfh_nde hnde) {
byte[] options_list_key = hnde.Atrs_val_by_key_bry(Atr_key_xowa_prop_list);
tmp_bfr.Add(options_list_key).Add_byte(Byte_ascii.Semic);
try {return (KeyVal[])prefs_mgr.Eval(tmp_bfr.To_bry_and_clear());}
@@ -113,11 +113,11 @@ class Prefs_html_wtr {
}
private void Write__value_atr(Bry_bfr bfr, Object prop_val) {
bfr.Add(Atr_stub_value); // " value='"
bfr.Add(Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, Object_.Xto_str_strict_or_empty(prop_val)));
bfr.Add(Gfh_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, Object_.Xto_str_strict_or_empty(prop_val)));
// "abcde"
bfr.Add_byte(Byte_ascii.Apos); // "'"
}
private void Write__tag_end(Bry_bfr bfr, Html_nde hnde) {
private void Write__tag_end(Bry_bfr bfr, Gfh_nde hnde) {
bfr.Add_mid(hnde.Src(), hnde.Tag_rhs_bgn(), hnde.Tag_rhs_end()); // "</input>"
// bfr.Add_byte_nl(); // "\n"; NOTE: do not write \n; will move to next line; DATE:2013-10-16
}

View File

@@ -28,7 +28,7 @@ public class Prefs_mgr implements GfoInvkAble {
atrs_hash.Add(Bry_prop_get, Byte_obj_val.new_(Tid_prop_get));
atrs_hash.Add(Bry_prop_set, Byte_obj_val.new_(Tid_prop_set));
html_wtr = new Prefs_html_wtr(this);
} private Xoae_app app; private Hash_adp_bry atrs_hash; private Html_parser html_rdr = new Html_parser(); private Prefs_html_wtr html_wtr;
} private Xoae_app app; private Hash_adp_bry atrs_hash; private Gfh_parser html_rdr = new Gfh_parser(); private Prefs_html_wtr html_wtr;
private Prefs_trg_mgr option_trgs_mgr = new Prefs_trg_mgr();
public void Html_box_mok_(Xog_html_itm v) {this.html_box_mok = v;} private Xog_html_itm html_box_mok;
public byte[] Props_get(byte[] src) {
@@ -39,12 +39,12 @@ public class Prefs_mgr implements GfoInvkAble {
Bry_bfr bfr = Bry_bfr.new_();
try {src = props_get_fmtr.Fmt_(src).Bld_bry_none(bfr);}
catch (Exception e) {src = Bry_.Add(src, Bry_.new_u8(Err_.Message_gplx_full(e)));}
Html_nde[] hndes = html_rdr.Parse_as_ary(src);
hndes = Html_selecter.Select(src, hndes, atrs_hash);
Gfh_nde[] hndes = html_rdr.Parse_as_ary(src);
hndes = Gfh_selecter.Select(src, hndes, atrs_hash);
int pos = 0;
int len = hndes.length;
for (int i = 0; i < len; i++) {
Html_nde hnde = hndes[i];
Gfh_nde hnde = hndes[i];
bfr.Add_mid(src, pos, hnde.Tag_lhs_bgn());
html_wtr.Write(bfr, src, hnde, i, option_trgs_mgr.Trg_type(), option_trgs_mgr.Trg_val());
pos = hnde.Tag_rhs_end();
@@ -63,18 +63,18 @@ public class Prefs_mgr implements GfoInvkAble {
src = Bry_.Replace(src, Bry_.new_a7("<xowa_cmd>"), Bry_.new_a7("&lt;xowa_cmd>"));
src = Bry_.Replace(src, Bry_.new_a7("</xowa_cmd>"), Bry_.new_a7("&lt;/xowa_cmd>"));
src = this.Parse_wikitext_to_html(src);
Html_nde[] hndes = html_rdr.Parse_as_ary(src);
hndes = Html_selecter.Select(src, hndes, atrs_hash);
Gfh_nde[] hndes = html_rdr.Parse_as_ary(src);
hndes = Gfh_selecter.Select(src, hndes, atrs_hash);
int len = hndes.length;
boolean tidy_enabled = app.Html_mgr().Tidy_mgr().Enabled();
Bry_bfr cmd_bfr = Bry_bfr.reset_(255);
for (int i = 0; i < len; i++) {
Html_nde hnde = hndes[i];
Gfh_nde hnde = hndes[i];
Props_set_by_hnde(cmd_bfr, src, hnde, i, tidy_enabled);
}
app.Cfg_mgr().Db_save_txt();
}
private void Props_set_by_hnde(Bry_bfr cmd_bfr, byte[] src, Html_nde hnde, int i, boolean tidy_enabled) {
private void Props_set_by_hnde(Bry_bfr cmd_bfr, byte[] src, Gfh_nde hnde, int i, boolean tidy_enabled) {
byte[] eval_code = hnde.Atrs_val_by_key_bry(Bry_prop);
if (eval_code == null) eval_code = hnde.Atrs_val_by_key_bry(Bry_prop_set);
String hnde_val = null;
@@ -85,7 +85,7 @@ public class Prefs_mgr implements GfoInvkAble {
case Elem_tid_input_text:
case Elem_tid_input_xowa_io:
case Elem_tid_select: hnde_val = html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value); break;
case Elem_tid_textarea: hnde_val = Html_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
case Elem_tid_textarea: hnde_val = Gfh_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
case Elem_tid_input_checkbox: hnde_val = html_itm.Html_elem_atr_get_bool(hnde_key, "checked") ? "y" : "n"; break;
}
byte[] get_cmd = Props_get(eval_code);
@@ -117,7 +117,7 @@ public class Prefs_mgr implements GfoInvkAble {
} private static final String Invk_exec_get = "exec_get", Invk_save = "save";
private static final byte Tid_prop = 0, Tid_prop_get = 1, Tid_prop_set = 2;
public static final byte[] Bry_prop = Bry_.new_a7("xowa_prop"), Bry_prop_get = Bry_.new_a7("xowa_prop_get"), Bry_prop_set = Bry_.new_a7("xowa_prop_set"), Bry_id = Bry_.new_a7("id");
public static byte Elem_tid_tid_of(Html_nde hnde) {
public static byte Elem_tid_tid_of(Gfh_nde hnde) {
byte[] elem_name = Bry_.Mid(hnde.Src(), hnde.Name_bgn(), hnde.Name_end());
if (Bry_.Eq(elem_name, Nde_textarea)) return Elem_tid_textarea;
else if (Bry_.Eq(elem_name, Nde_select)) return Elem_tid_select;