diff --git a/resources/html/UserCenter/login.html b/resources/html/UserCenter/login.html index f67a909..9f20d07 100644 --- a/resources/html/UserCenter/login.html +++ b/resources/html/UserCenter/login.html @@ -2,7 +2,7 @@ - 登录界面 + 用户登录 diff --git a/src/main/java/cn/minbrowser/util/CustomUrlUtil.java b/src/main/java/cn/minbrowser/util/CustomUrlUtil.java index 54d79ec..004d502 100644 --- a/src/main/java/cn/minbrowser/util/CustomUrlUtil.java +++ b/src/main/java/cn/minbrowser/util/CustomUrlUtil.java @@ -9,8 +9,12 @@ package cn.minbrowser.util; */ public class CustomUrlUtil { public static final String INDEX_URL = "index"; + public static final String INDEX_SHOW_URL = "minbrowser:/index"; public static final String Setting_URL = "setting"; + public static final String Setting_SHOW_URL = "minbrowser:/settings"; public static final String LOGIN_URL = "login"; + public static final String LOGIN_SHOW_URL = "minbrowser:/user/login"; public static final String REGISTER_URL = "register"; + public static final String REGISTER_SHOW_URL = "minbrowser:/user/register"; public static final String ERROR_URL = "error"; } diff --git a/src/main/java/cn/minbrowser/view/NavigationBarController.java b/src/main/java/cn/minbrowser/view/NavigationBarController.java index a1a3ce5..29ea075 100644 --- a/src/main/java/cn/minbrowser/view/NavigationBarController.java +++ b/src/main/java/cn/minbrowser/view/NavigationBarController.java @@ -100,33 +100,58 @@ public class NavigationBarController implements Initializable { } /** - * 这里应该执行一个展示主页的界面,目前先只加载一个新的tab页 + * 获取当前聚焦的tab,显示主页 */ - public void showHomePage(){ - tabPane.getTabs().add(new MiniTab(this)); - } - - /** - * 这里应该执行一个显示登录页的界面,目前先只加载一个新的tab页 - */ - public void showUserCenter(){ - tabPane.getTabs().add(new MiniTab(this)); - } - - /** - * 在当前聚焦的Tab上,显示设置界面 - */ - public void showSelectedSettingInfo(){ + public void showSelectedHomePage(){ MiniTab miniTab=getSelectedTab(); - miniTab.showSettingInfo(); + miniTab.showLocalHomePage(); + } + + /** + * 获取当前聚焦的tab,显示登录界面 + */ + public void showSelectedLoginPage(){ + MiniTab miniTab=getSelectedTab(); + miniTab.showLoginPage(); + } + + /** + * 新建一个tab,显示登录界面 + */ + public void showNewLoginPage(){ + // 遍历tab:如果没登录界面,就打开一个新的设置界面;有,则将焦点改到该界面 + int flag=0; //0表示没界面,>0表示有 + for (Tab tab: tabPane.getTabs()) { + MiniTab miniTab= (MiniTab) tab; + if(miniTab.getUrlText().equals(CustomUrlUtil.LOGIN_SHOW_URL)){ + flag++; + tabPane.getSelectionModel().select(tab); + } + } + if(flag==0) { + MiniTab miniTab = new MiniTab(CustomUrlUtil.LOGIN_URL, this); + tabPane.getTabs().add(miniTab); + tabPane.getSelectionModel().select(miniTab); + } } /** * 新建一个tab,显示设置界面 */ public void showNewSettingInfo(){ - MiniTab miniTab=new MiniTab(CustomUrlUtil.Setting_URL,this); - tabPane.getTabs().add(miniTab); - tabPane.getSelectionModel().select(miniTab); + // 遍历tab:如果没设置界面,就打开一个新的设置界面;有,则将焦点改到该界面 + int flag=0; //0表示没设置界面,>0表示有 + for (Tab tab: tabPane.getTabs()) { + MiniTab miniTab= (MiniTab) tab; + if(miniTab.getUrlText().equals(CustomUrlUtil.Setting_SHOW_URL)){ + flag++; + tabPane.getSelectionModel().select(tab); + } + } + if(flag==0) { + MiniTab miniTab = new MiniTab(CustomUrlUtil.Setting_URL, this); + tabPane.getTabs().add(miniTab); + tabPane.getSelectionModel().select(miniTab); + } } } diff --git a/src/main/java/cn/minbrowser/view/login/LoginHTMLController.java b/src/main/java/cn/minbrowser/view/login/LoginHTMLController.java index c1f9654..14efecd 100644 --- a/src/main/java/cn/minbrowser/view/login/LoginHTMLController.java +++ b/src/main/java/cn/minbrowser/view/login/LoginHTMLController.java @@ -41,6 +41,6 @@ public class LoginHTMLController { * 支持跳转到主页 */ public void showHomePage(){ - navigationBarController.showHomePage(); + navigationBarController.showSelectedHomePage(); } } diff --git a/src/main/java/cn/minbrowser/view/login/RegisterHTMLController.java b/src/main/java/cn/minbrowser/view/login/RegisterHTMLController.java index 51e06a1..04e1811 100644 --- a/src/main/java/cn/minbrowser/view/login/RegisterHTMLController.java +++ b/src/main/java/cn/minbrowser/view/login/RegisterHTMLController.java @@ -41,6 +41,6 @@ public class RegisterHTMLController { * 支持跳转到登录页 */ public void showLoginPage(){ - navigationBarController.showUserCenter(); + navigationBarController.showSelectedLoginPage(); } } diff --git a/src/main/java/cn/minbrowser/view/minibrowser/MiniTab.java b/src/main/java/cn/minbrowser/view/minibrowser/MiniTab.java index c7c2d14..0fe797e 100644 --- a/src/main/java/cn/minbrowser/view/minibrowser/MiniTab.java +++ b/src/main/java/cn/minbrowser/view/minibrowser/MiniTab.java @@ -178,18 +178,25 @@ public class MiniTab extends Tab { return input; } + /** + * 获取当前url + */ + public String getUrlText(){ + return input.getText().trim(); + } + /** * 根据尚未显示在input控件上的url,进行页面加载 * @param url */ private void analysisAddress(String url){ - if(url.equals(INDEX_URL)){ + if(url.equals(INDEX_URL) || url.equals(INDEX_SHOW_URL)){ showLocalHomePage(); - }else if(url.equals(Setting_URL)){ + }else if(url.equals(Setting_URL) || url.equals(Setting_SHOW_URL)){ showSettingInfo(); - }else if(url.equals(LOGIN_URL)){ + }else if(url.equals(LOGIN_URL) || url.equals(LOGIN_SHOW_URL)){ showLoginPage(); - }else if(url.equals(REGISTER_URL)){ + }else if(url.equals(REGISTER_URL) || url.equals(REGISTER_SHOW_URL)){ showRegisterPage(); }else if(url.equals(ERROR_URL)){ showErrorPage(); @@ -203,9 +210,6 @@ public class MiniTab extends Tab { */ private void initWebViewEvent() { // 监听到新的地址的改变,修改url地址 -// webview.getEngine().locationProperty().addListener((ObservableValue ov, final String oldLoc, final String loc) -> { -// refreshUrlText(loc); -// }); webview.getEngine().getLoadWorker().stateProperty().addListener( new ChangeListener() { public void changed(ObservableValue ov, State oldState, State newState) { @@ -299,18 +303,26 @@ public class MiniTab extends Tab { // 刷新urlText的显示,以及js和java的数据交互 public void refreshUrlText(String url) { - if (url.contains("resources/html/UserCenter/login.html")) { - input.setText("minbrowser:/user/login"); + if (url.contains("resources/html/UserCenter/login.html") + || url.equals(LOGIN_URL) + || url.equals(LOGIN_SHOW_URL)) { + input.setText(LOGIN_SHOW_URL); setLoginListener(); - } else if(url.contains("resources/html/UserCenter/register.html")) { - input.setText("minbrowser:/user/register"); + } else if(url.contains("resources/html/UserCenter/register.html") + || url.equals(REGISTER_URL) + || url.equals(REGISTER_SHOW_URL)) { + input.setText(REGISTER_SHOW_URL); setRegisterListener(); - } else if (url.contains("resources/html/BrowserSetting")) { - input.setText("minbrowser:/settings"); + } else if (url.contains("resources/html/BrowserSetting") + || url.equals(Setting_URL) + || url.equals(Setting_SHOW_URL)) { + input.setText(Setting_SHOW_URL); showSettingInfoByListenEngineState(); setChangingSettingInfoListener(); - } else if(url.contains("resources/html/MainPage.html")||url.equals(INDEX_URL)){ - input.setText("minbrowser:/index"); + } else if(url.contains("resources/html/MainPage.html") + || url.equals(INDEX_URL) + || url.equals(INDEX_SHOW_URL)){ + input.setText(INDEX_SHOW_URL); showUsernameByListenEngineState(); }else { try { @@ -331,7 +343,6 @@ public class MiniTab extends Tab { webview.getEngine().executeScript("showDownloadDir(\" " + settingHTMLController.getDownloadDir() + " \");"); webview.getEngine().executeScript("showMisIP(\" " + settingHTMLController.getMisIP() + " \");"); webview.getEngine().executeScript("showMisPort(\" " + settingHTMLController.getMisPort() + " \");"); -// mainWebView.getEngine().executeScript("showInfo()"); } /** @@ -370,7 +381,6 @@ public class MiniTab extends Tab { private void showUsernameByListenEngineState() { System.out.println("username: " + mainPageHTMLController.getUserName()); webview.getEngine().executeScript("showUserName(\" " + mainPageHTMLController.getUserName() + " \");"); -// webview.getEngine().executeScript("showUserNameTest();"); } // 显示用户注册页 @@ -418,7 +428,6 @@ public class MiniTab extends Tab { public void showLocalHomePage() { try { loadLocalPage("/resources/html" + "/MainPage.html"); -// webview.getEngine().executeScript("showUserName(\" " + mainPageHTMLController.getUserName() + " \");"); } catch (MalformedURLException e) { e.printStackTrace(); } @@ -435,15 +444,5 @@ public class MiniTab extends Tab { System.out.println(filepath); System.out.println(fileUrl.toString()); webview.getEngine().load(fileUrl.toString()); -// try { -// Thread.sleep(1000); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } -// webview.getEngine().executeScript("function showUserName(username) {\n" + -// " document.getElementById(\"username\").innerHTML=username;\n" + -// " }" + -// "showUserName('hhhh');"); -// webview.getEngine().executeScript("showUserName(\" " + mainPageHTMLController.getUserName() + " \")"); } } diff --git a/src/main/resources/fxml/NavigationBarOverviewV2.fxml b/src/main/resources/fxml/NavigationBarOverviewV2.fxml index f13c208..851ed87 100644 --- a/src/main/resources/fxml/NavigationBarOverviewV2.fxml +++ b/src/main/resources/fxml/NavigationBarOverviewV2.fxml @@ -19,7 +19,7 @@ -