Bldr: Add more implementation for missing origs

pull/620/head
gnosygnu 7 years ago
parent ef11577d08
commit 3e39b2fe77

@ -25,6 +25,8 @@ import gplx.gfui.controls.gxws.Gxw_html;
import gplx.gfui.controls.gxws.Gxw_html_load_tid_;
import gplx.gfui.controls.standards.Gfui_html;
import gplx.gfui.controls.standards.Gfui_tab_mgr;
import gplx.gfui.draws.ColorAdp;
import gplx.gfui.draws.ColorAdp_;
import gplx.gfui.ipts.*;
import gplx.gfui.kits.core.Swt_kit;
@ -62,6 +64,7 @@ public class Swt_html implements Gxw_html, Swt_control, FocusListener, Gfo_evt_m
browser.addFocusListener(this);
browser.addTitleListener(new Swt_html_lnr_title(this));
browser.addMouseWheelListener(new Swt_html_lnr_wheel(this));
// browser.addOpenWindowListener(new Swt_open_window_listener(this)); // handle target='blank'
// browser.addTraverseListener(new Swt_html_lnr_Traverse(this));
}
@ -74,7 +77,7 @@ public class Swt_html implements Gxw_html, Swt_control, FocusListener, Gfo_evt_m
public String Load_by_url_path() {return load_by_url_path;} private String load_by_url_path;
public void Html_doc_html_load_by_mem(String html) {
this.html_doc_html_load_tid = Gxw_html_load_tid_.Tid_mem;
this.load_by_url_path = null;
this.load_by_url_path = null;
browser.setText(html); // DBG: Io_mgr.I.SaveFilStr(Io_url_.new_fil_("C:\\temp.txt"), s)
}
public void Html_doc_html_load_by_url(Io_url path, String html) {

@ -19,6 +19,7 @@ import gplx.xowa.addons.bldrs.files.cmds.*;
import gplx.xowa.addons.bldrs.mass_parses.inits.*; import gplx.xowa.addons.bldrs.mass_parses.parses.*; import gplx.xowa.addons.bldrs.mass_parses.makes.*; import gplx.xowa.addons.bldrs.mass_parses.resumes.*;
import gplx.xowa.addons.bldrs.files.cksums.*; import gplx.xowa.addons.bldrs.files.checks.*;
import gplx.xowa.addons.bldrs.app_cfgs.wm_server_cfgs.*;
import gplx.xowa.addons.bldrs.files.missing_origs.*;
public class Xoax_builds_files_addon implements Xoax_addon_itm, Xoax_addon_itm__bldr {
public Xob_cmd[] Bldr_cmds() {
return new Xob_cmd[]
@ -26,7 +27,7 @@ public class Xoax_builds_files_addon implements Xoax_addon_itm, Xoax_addon_itm__
, Xobldr__lnki_regy__create.Prototype
, Xobldr__page_regy__create.Prototype
, Xobldr__orig_regy__create.Prototype
, Xobldr__orig_regy__find_missing.Prototype
, Xobldr_missing_origs_cmd.Prototype
, Xobldr__xfer_temp__insert_thm.Prototype
, Xobldr__xfer_temp__insert_orig.Prototype
, Xobldr__xfer_regy__create.Prototype

@ -13,21 +13,21 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.addons.bldrs.files.cmds; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; import gplx.xowa.addons.bldrs.files.*;
package gplx.xowa.addons.bldrs.files.missing_origs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; import gplx.xowa.addons.bldrs.files.*;
import gplx.dbs.*;
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*;
import gplx.xowa.files.*; import gplx.xowa.files.origs.*; import gplx.xowa.apps.wms.apis.origs.*;
import gplx.xowa.addons.bldrs.files.dbs.*;
public class Xobldr__orig_regy__find_missing extends Xob_cmd__base {
public class Xobldr_missing_origs_cmd extends Xob_cmd__base {
private int fail_max = 100000;
public Xobldr__orig_regy__find_missing(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
public Xobldr_missing_origs_cmd(Xob_bldr bldr, Xowe_wiki wiki) {super(bldr, wiki);}
@Override public void Cmd_run() {
// got orig_tbl
Db_conn conn = Xob_db_file.New__file_make(wiki.Fsys_mgr().Root_dir()).Conn();
Xob_orig_regy_tbl.Create_table(conn);
// get counts; fail if too many
int fail_count = conn.Exec_select_count_as_int("orig_regy", 0);
int fail_count = conn.Exec_sql(Db_sql_.Make_by_fmt(String_.Ary("SELECT Count(lnki_ttl) FROM orig_regy WHERE orig_page_id IS NULL")));
if (fail_count > fail_max) throw Err_.new_wo_type("bldr.find_missing: too many missing: missing=~{0} max=~{1}", fail_count, fail_max);
Gfo_usr_dlg_.Instance.Note_many("", "", "bldr.find_missing: found=~{0}", fail_count);
@ -70,7 +70,8 @@ public class Xobldr__orig_regy__find_missing extends Xob_cmd__base {
for (int i = 0; i < len; i++) {
Xof_fsdb_itm itm = (Xof_fsdb_itm)list.Get_at(i);
update_stmt
.Val_int("orig_w", itm.Orig_w()).Val_int("orig_h", itm.Orig_h())
.Val_int("orig_w", itm.Orig_w())
.Val_int("orig_h", itm.Orig_h())
.Crt_bry_as_str("lnki_ttl", itm.Lnki_ttl()).Exec_update();
}
conn.Txn_end();
@ -83,6 +84,6 @@ public class Xobldr__orig_regy__find_missing extends Xob_cmd__base {
public static final String BLDR_CMD_KEY = "file.orig_regy.find_missing";
@Override public String Cmd_key() {return BLDR_CMD_KEY;}
public static final Xob_cmd Prototype = new Xobldr__orig_regy__find_missing(null, null);
@Override public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return new Xobldr__orig_regy__find_missing(bldr, wiki);}
public static final Xob_cmd Prototype = new Xobldr_missing_origs_cmd(null, null);
@Override public Xob_cmd Cmd_clone(Xob_bldr bldr, Xowe_wiki wiki) {return new Xobldr_missing_origs_cmd(bldr, wiki);}
}

@ -0,0 +1,95 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.addons.bldrs.files.missing_origs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*; import gplx.xowa.addons.bldrs.files.*;
import gplx.langs.htmls.encoders.*;
import gplx.langs.jsons.*;
import gplx.xowa.files.repos.*;
import gplx.xowa.files.downloads.*;
import gplx.xowa.apps.wms.apis.origs.*;
public class Xobldr_missing_origs_wmfapi {
// private final Xoapi_orig_base orig_api;
// private final Xof_download_wkr download_wkr;
// private final Xow_repo_mgr repo_mgr;
// private final byte[] wiki_domain;
// private final Xoapi_orig_rslts api_rv = new Xoapi_orig_rslts();
public Xobldr_missing_origs_wmfapi(Xoapi_orig_base orig_api, Xof_download_wkr download_wkr, Xow_repo_mgr repo_mgr, byte[] wiki_domain) {
// this.orig_api = orig_api;
// this.download_wkr = download_wkr;
// this.repo_mgr = repo_mgr;
// this.wiki_domain = wiki_domain;
}
public void Find_by_list(Ordered_hash src, Ordered_hash trg, String api_domain, int idx) {
// fail if web access disabled
if (!gplx.core.ios.IoEngine_system.Web_access_enabled) {
throw Err_.new_wo_type("web access must be enabled for missing_origs cmd");
}
// Json_parser parser = new Json_parser();
Gfo_url_encoder encoder = Gfo_url_encoder_.New__http_url().Make();
Bry_bfr bfr = Bry_bfr_.New();
int len = src.Len();
try {
// loop until all titles found
while (idx < len) {
// generate super api; EX: https://commons.wikimedia.org/w/api.php?action=query&format=xml&prop=imageinfo&iiprop=size|url|mediatype|mime|bitdepth|timestamp|size|sha1&redirects&iilimit=500&titles=
bfr.Add_str_a7("https://");
bfr.Add_str_a7(api_domain);
bfr.Add_str_a7("/w/api.php?action=query");
bfr.Add_str_a7("&format=json"); // json easier to use than xml
bfr.Add_str_a7("&iilimit=1"); // limit to 1 revision history (default will return more); EX:File:Different_Faces_Neptune.jpg
bfr.Add_str_a7("&redirects"); // show redirects
bfr.Add_str_a7("&prop=imageinfo&iiprop=size|url|mediatype|mime|bitdepth|timestamp|size|sha1"); // list of props
bfr.Add_str_a7("&titles=");
// add titles; EX: File:A.png|File:B.png|
for (int i = idx; i < idx + 500; i++) {
Xobldr_missing_origs_item item = (Xobldr_missing_origs_item)src.Get_at(i);
Xoa_ttl ttl = item.Lnki_ttl();
// skip "|" if first
if (i != idx) bfr.Add_byte_pipe();
// make ttl_bry so (a) namespace is present (EX:File:); (b) spaces are present (not underscores)
byte[] ttl_bry = ttl.Full_txt_wo_qarg();
ttl_bry = encoder.Encode(ttl_bry);
bfr.Add(ttl_bry);
}
// call api
// byte[] rslt = download_wkr.Download_xrg().Exec_as_bry(bfr.To_bry_and_clear());
// deserialize
// Json_doc jdoc = parser.Parse(rslt);
// loop over /query/pages
// for each node, deserialize orig info and add to hash by "title"
// loop over /query/redirects
// for each node, retrieve from hash by "to"; add "from" as prop
// loop over hash
// for each item, retrieve from src; copy props over
}
} catch (Exception e) {
Gfo_usr_dlg_.Instance.Warn_many("", "", "missing_origs:failure while calling wmf_api; domain=~{0} idx=~{1} err=~{2}", api_domain, idx, Err_.Message_gplx_log(e));
}
}
}
class Xobldr_missing_origs_item {
private final Xoa_ttl lnki_ttl;
public Xobldr_missing_origs_item(Xoa_ttl lnki_ttl) {
this.lnki_ttl = lnki_ttl;
}
public Xoa_ttl Lnki_ttl() {return lnki_ttl;}
}

@ -16,7 +16,9 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
package gplx.xowa.apps.apis.xowa.gui; import gplx.*; import gplx.xowa.*; import gplx.xowa.apps.*; import gplx.xowa.apps.apis.*; import gplx.xowa.apps.apis.xowa.*;
import gplx.xowa.apps.apis.xowa.gui.browsers.*;
public class Xoapi_browser implements Gfo_invk {
private Xoae_app app;
public void Init_by_kit(Xoae_app app) {
this.app = app;
url.Init_by_kit(app);
tabs.Init_by_kit(app);
html.Init_by_kit(app);
@ -34,6 +36,9 @@ public class Xoapi_browser implements Gfo_invk {
public Xoapi_prog Prog() {return prog;} private Xoapi_prog prog = new Xoapi_prog();
public Xoapi_info Info() {return info;} private Xoapi_info info = new Xoapi_info();
public Xoapi_prog_log Prog_log() {return prog_log;} private Xoapi_prog_log prog_log = new Xoapi_prog_log();
private void Nightmode_toggle() {
app.Gui_mgr().Nightmode_mgr().Enabled_toggle_();
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_url)) return url;
else if (ctx.Match(k, Invk_tabs)) return tabs;
@ -43,9 +48,13 @@ public class Xoapi_browser implements Gfo_invk {
else if (ctx.Match(k, Invk_prog)) return prog;
else if (ctx.Match(k, Invk_info)) return info;
else if (ctx.Match(k, Invk_prog_log)) return prog_log;
else if (ctx.Match(k, Invk__nightmode_toggle)) Nightmode_toggle();
else return Gfo_invk_.Rv_unhandled;
return this;
}
private static final String
Invk_url = "url", Invk_tabs = "tabs", Invk_html = "html", Invk_search = "search"
, Invk_find = "find", Invk_prog = "prog", Invk_info = "info", Invk_prog_log = "prog_log";
, Invk_find = "find", Invk_prog = "prog", Invk_info = "info", Invk_prog_log = "prog_log"
, Invk__nightmode_toggle = "nightmode_toggle"
;
}

@ -19,7 +19,7 @@ import gplx.gfui.*; import gplx.gfui.ipts.*; import gplx.gfui.kits.core.*; impor
import gplx.xowa.addons.wikis.searchs.*; import gplx.xowa.guis.menus.*; import gplx.xowa.guis.cmds.*; import gplx.xowa.apps.cfgs.*; import gplx.xowa.users.*;
import gplx.xowa.langs.*;
import gplx.xowa.guis.bnds.*; import gplx.xowa.guis.views.*; import gplx.xowa.guis.urls.url_macros.*; import gplx.xowa.addons.wikis.searchs.gui.htmlbars.*;
import gplx.xowa.guis.views.boots.*;
import gplx.xowa.guis.views.boots.*; import gplx.xowa.guis.views.nightmodes.*;
import gplx.gfui.layouts.swts.*;
public class Xoa_gui_mgr implements Gfo_evt_itm, Gfo_invk {
public Xoa_gui_mgr(Xoae_app app) {
@ -41,7 +41,8 @@ public class Xoa_gui_mgr implements Gfo_evt_itm, Gfo_invk {
public Xog_layout Layout() {return layout;} private Xog_layout layout = new Xog_layout();
public Xog_html_mgr Html_mgr() {return html_mgr;} private Xog_html_mgr html_mgr;
public Xog_menu_mgr Menu_mgr() {return menu_mgr;} private Xog_menu_mgr menu_mgr;
public Xog_url_macro_mgr Url_macro_mgr() {return url_macro_mgr;} private Xog_url_macro_mgr url_macro_mgr = new Xog_url_macro_mgr();
public Xog_url_macro_mgr Url_macro_mgr() {return url_macro_mgr;} private final Xog_url_macro_mgr url_macro_mgr = new Xog_url_macro_mgr();
public Xog_nightmode_mgr Nightmode_mgr() {return nightmode_mgr;} private final Xog_nightmode_mgr nightmode_mgr = new Xog_nightmode_mgr();
public void Show_prog() {
// get rects for positioning
RectAdp statusbar_rect = browser_win.Statusbar_grp().Rect();
@ -76,6 +77,7 @@ public class Xoa_gui_mgr implements Gfo_evt_itm, Gfo_invk {
, new gplx.core.logs.Gfo_log_itm_wtr__csv()));
}
win_cfg.Init_by_app(app);
nightmode_mgr.Init_by_app(app);
}
public void Kit_(Gfui_kit kit) {
this.kit = kit;

@ -311,6 +311,7 @@ public class Xog_bnd_mgr implements Gfo_invk {
Init_itm(Xog_cmd_itm_.Key_gui_browser_info_focus , Xog_bnd_box_.Tid_browser , "mod.ca+key.i");
Init_itm(Xog_cmd_itm_.Key_gui_browser_info_clear , Xog_bnd_box_.Tid_browser , "mod.ca+key.c");
Init_itm(Xog_cmd_itm_.Key_gui_browser_prog_log_show , Xog_bnd_box_.Tid_browser_prog , "mouse.middle", "mod.cs+key.p");
Init_itm(Xog_cmd_itm_.Key_gui_browser_nightmode_toggle , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_html_tidy_toggle , Xog_bnd_box_.Tid_browser , "key.f7");
Init_itm(Xog_cmd_itm_.Key_usr_bookmarks_add , Xog_bnd_box_.Tid_browser , "");
Init_itm(Xog_cmd_itm_.Key_usr_bookmarks_show , Xog_bnd_box_.Tid_browser , "key.f3");

@ -123,6 +123,7 @@ public class Xog_cmd_itm_ {
, Key_gui_browser_prog_log_show = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.prog_log.show")
, Key_gui_browser_info_focus = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.info.focus")
, Key_gui_browser_info_clear = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.info.clear")
, Key_gui_browser_nightmode_toggle = new_dflt_(Xog_ctg_itm_.Tid_browser , "xowa.gui.browser.nightmode_toggle")
, Key_gui_menus_group_file = "xowa.gui.menus.group.file"
, Key_gui_menus_group_edit = "xowa.gui.menus.group.edit"

@ -33,6 +33,7 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm {
public Xoa_gui_mgr Gui_mgr() {return gui_mgr;} private Xoa_gui_mgr gui_mgr;
public GfuiWin Win_box() {return win_box;} private GfuiWin win_box;
public Gfui_grp Toolbar_grp() {return toolbar_grp;} private Gfui_grp toolbar_grp;
public GfuiBtn Go_bwd_btn() {return go_bwd_btn;} private GfuiBtn go_bwd_btn;
public GfuiBtn Go_fwd_btn() {return go_fwd_btn;} private GfuiBtn go_fwd_btn;
public GfuiComboBox Url_box() {return url_box;} private GfuiComboBox url_box;
@ -313,7 +314,7 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm {
win_box.Layout_mgr_(new Swt_layout_mgr__grid().Cols_(1).Margin_w_(0).Margin_h_(0).Spacing_h_(0));
// toolbar
Gfui_grp toolbar_grp = Xog_win_itm_.new_grp(app, kit, win_box, "toolbar_grp");
this.toolbar_grp = Xog_win_itm_.new_grp(app, kit, win_box, "toolbar_grp");
go_bwd_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, img_dir, "go_bwd_btn", "go_bwd.png" );
go_fwd_btn = Xog_win_itm_.new_btn(app, kit, toolbar_grp, img_dir, "go_fwd_btn", "go_fwd.png" );
url_box = Xog_win_itm_.new_cbo(app, kit, toolbar_grp, ui_font, "url_box" , true);

@ -20,55 +20,28 @@ import gplx.xowa.guis.langs.*;
public class Xog_win_itm_ {
public static void Show_win(Xog_win_itm win) {
Xoae_app app = win.App(); GfuiWin win_box = win.Win_box();
win_box.Focus_able_(false);
win_box.BackColor_(ColorAdp_.White);
win.Tab_mgr().Tab_mgr().BackColor_(ColorAdp_.White);
win.Tab_mgr().Tab_mgr().Btns_selected_foreground_(ColorAdp_.Black);
win.Tab_mgr().Tab_mgr().Btns_selected_background_(ColorAdp_.White);
win.Tab_mgr().Tab_mgr().Btns_unselected_foreground_(ColorAdp_.Black);
win.Tab_mgr().Tab_mgr().Btns_unselected_background_(ColorAdp_.White);
// win_box.BackColor_(ColorAdp_.Black);
// win.Tab_mgr().Tab_mgr().BackColor_(ColorAdp_.Black);
// win.Tab_mgr().Tab_mgr().Btns_selected_foreground_(ColorAdp_.White);
// win.Tab_mgr().Tab_mgr().Btns_selected_background_(ColorAdp_.Black);
// win.Tab_mgr().Tab_mgr().Btns_unselected_foreground_(ColorAdp_.White);
// win.Tab_mgr().Tab_mgr().Btns_unselected_background_(ColorAdp_.Black);
app.Gui_mgr().Nightmode_mgr().Enabled_dflt_();
Xog_startup_win_.Startup(app, win_box);
win_box.Icon_(IconAdp.file_or_blank(app.Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("file", "app.window", "app_icon.png")));
}
public static Gfui_grp new_grp(Xoae_app app, Gfui_kit kit, GfuiElem win, String id) {
Gfui_grp rv = kit.New_grp(id, win);
rv.BackColor_(ColorAdp_.White);
// rv.BackColor_(ColorAdp_.Black);
return rv;
return kit.New_grp(id, win);
}
public static GfuiBtn new_btn(Xoae_app app, Gfui_kit kit, GfuiElem win, Io_url img_dir, String id, String file) {
GfuiBtn rv = kit.New_btn(id, win);
rv.Btn_img_(kit.New_img_load(img_dir.GenSubFil(file)));
rv.ForeColor_(ColorAdp_.Black).BackColor_(ColorAdp_.White);
// rv.ForeColor_(ColorAdp_.White).BackColor_(ColorAdp_.Black);
return rv;
}
public static GfuiComboBox new_cbo(Xoae_app app, Gfui_kit kit, GfuiElem win, FontAdp ui_font, String id, boolean border_on) {
GfuiComboBox rv = kit.New_combo(id, win, Keyval_.new_(GfuiTextBox.CFG_border_on_, border_on));
rv.TextMgr().Font_(ui_font);
rv.ForeColor_(ColorAdp_.Black).BackColor_(ColorAdp_.White);
rv.Border_color_(ColorAdp_.LightGray);
// rv.ForeColor_(ColorAdp_.White).BackColor_(ColorAdp_.Black);
// rv.Border_color_(ColorAdp_.Black);
return rv;
}
public static GfuiTextBox new_txt(Xoae_app app, Gfui_kit kit, GfuiElem win, FontAdp ui_font, String id, boolean border_on) {
GfuiTextBox rv = kit.New_text_box(id, win, Keyval_.new_(GfuiTextBox.CFG_border_on_, border_on));
rv.TextMgr().Font_(ui_font);
rv.ForeColor_(ColorAdp_.Black).BackColor_(ColorAdp_.White);
rv.Border_color_(border_on ? ColorAdp_.LightGray : rv.BackColor());
// rv.ForeColor_(ColorAdp_.White).BackColor_(ColorAdp_.Black);
// rv.Border_color_(border_on ? ColorAdp_.Black : rv.BackColor());
return rv;
}
public static void Update_tiptext(Xoae_app app, GfuiElem elem, int tiptext_id) {

@ -0,0 +1,80 @@
/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.guis.views.nightmodes; import gplx.*; import gplx.xowa.*; import gplx.xowa.guis.*; import gplx.xowa.guis.views.*;
import gplx.gfui.controls.elems.*; import gplx.gfui.draws.*;
public class Xog_nightmode_mgr {
private boolean enabled;
private Xog_win_itm win;
public void Init_by_app(Xoae_app app) {
this.win = app.Gui_mgr().Browser_win();
}
public boolean Enabled() {return enabled;}
public void Enabled_dflt_() {
Enabled_(false);
}
public void Enabled_toggle_() {
Enabled_(!enabled);
}
private void Enabled_(boolean v) {
this.enabled = v;
// get colors
ColorAdp backcolor, forecolor, edgecolor;
if (enabled) {
backcolor = ColorAdp_.Black;
forecolor = ColorAdp_.White;
edgecolor = ColorAdp_.Black;
}
else {
backcolor = ColorAdp_.White;
forecolor = ColorAdp_.Black;
edgecolor = ColorAdp_.LightGray;
}
// set back / fore for window and tab
win.Win_box().BackColor_(backcolor);
win.Tab_mgr().Tab_mgr().BackColor_(backcolor);
win.Tab_mgr().Tab_mgr().Btns_selected_background_(backcolor);
win.Tab_mgr().Tab_mgr().Btns_selected_foreground_(forecolor);
win.Tab_mgr().Tab_mgr().Btns_unselected_background_(backcolor);
win.Tab_mgr().Tab_mgr().Btns_unselected_foreground_(forecolor);
// set back / fore for other elems
GfuiElemBase[] elems = new GfuiElemBase[]
{ win.Toolbar_grp()
, win.Go_bwd_btn()
, win.Go_fwd_btn()
, win.Url_box()
, win.Url_exec_btn()
, win.Search_box()
, win.Search_exec_btn()
, win.Statusbar_grp()
, win.Find_close_btn()
, win.Find_bwd_btn()
, win.Find_fwd_btn()
, win.Find_box()
, win.Prog_box()
};
for (GfuiElemBase elem : elems)
elem.BackColor_(backcolor).ForeColor_(forecolor);
// set edge colors
win.Url_box().Border_color_(edgecolor);
win.Search_box().Border_color_(edgecolor);
win.Find_box().Border_color_(edgecolor);
win.Prog_box().Border_color_(backcolor);
}
}

@ -19,12 +19,17 @@ public class Default_tab_page implements Xow_special_page {
public void Special__gen(Xow_wiki wiki, Xoa_page pagei, Xoa_url url, Xoa_ttl ttl) {
Xoae_page page = (Xoae_page)pagei;
page.Db().Text().Text_bry_(Bry_.Empty);
page.Html_data().Custom_html_(DEFAULT_HTML);
boolean nightmode_enabled = ((Xoae_app)wiki.App()).Gui_mgr().Nightmode_mgr().Enabled();
page.Html_data().Custom_html_(nightmode_enabled ? DEFAULT_HTML_NIGHT : DEFAULT_HTML_DAY);
page.Html_data().Custom_tab_name_(Tab_name_bry);
}
public static final byte[] Tab_name_bry = Bry_.new_a7("New Tab");
public Xow_special_page Special__clone() {return this;}
private static final byte[] DEFAULT_HTML = Bry_.new_a7("<html><body class='xowa-default_new_tab-body'></body></html>");
private static final byte[]
DEFAULT_HTML_DAY = Bry_.new_a7("<html><body style='background-color:white'></body></html>")
, DEFAULT_HTML_NIGHT = Bry_.new_a7("<html><body style='background-color:black'></body></html>")
;
}

Loading…
Cancel
Save