Browse Source

REPORT-2335 插件管理界面以及右上角的登录界面,多次点击后,页面无法关闭

master
vito 7 years ago
parent
commit
3b736749f5
  1. 10
      designer/src/com/fr/design/mainframe/bbs/LoginDialog.java
  2. 12
      designer_base/src/com/fr/design/extra/LoginPane.java
  3. 1
      designer_base/src/com/fr/design/extra/LoginWebBridge.java
  4. 10
      designer_base/src/com/fr/design/extra/PluginWebBridge.java
  5. 11
      designer_base/src/com/fr/design/extra/QQLoginWebBridge.java
  6. 36
      designer_base/src/com/fr/design/extra/ReuseWebBridge.java
  7. 54
      designer_base/src/com/fr/design/extra/ReuseWebPane.java
  8. 6
      designer_base/src/com/fr/design/extra/WebDialog.java

10
designer/src/com/fr/design/mainframe/bbs/LoginDialog.java

@ -3,10 +3,7 @@ package com.fr.design.mainframe.bbs;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.UIDialog;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.stable.StringUtils;
import com.fr.stable.StableUtils;
import javax.swing.*;
import java.awt.*;
@ -19,14 +16,15 @@ public class LoginDialog extends UIDialog {
public LoginDialog(Frame frame, BasicPane pane) {
super(frame);
setUndecorated(true);
if (StableUtils.getMajorJavaVersion() == 8) {
setUndecorated(true);
}
JPanel panel = (JPanel) getContentPane();
panel.setLayout(new BorderLayout());
add(pane, BorderLayout.CENTER);
setSize(DEFAULT_SHOP);
GUICoreUtils.centerWindow(this);
setResizable(false);
setTitle(Inter.getLocText("FR-Designer-Plugin_Manager"));
}
@Override

12
designer_base/src/com/fr/design/extra/LoginPane.java

@ -4,7 +4,6 @@ import com.fr.base.FRContext;
import com.fr.design.DesignerEnvManager;
import com.fr.design.RestartHelper;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.UITabbedPane;
import com.fr.general.ComparatorUtils;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
@ -53,8 +52,6 @@ public class LoginPane extends BasicPane {
updateShopScripts();
}
}
} else {
initTraditionalStore();
}
}
@ -140,13 +137,4 @@ public class LoginPane extends BasicPane {
}
}.execute();
}
private void initTraditionalStore() {
UITabbedPane tabbedPane = new UITabbedPane();
add(tabbedPane, BorderLayout.CENTER);
PluginInstalledPane installedPane = new PluginInstalledPane();
tabbedPane.addTab(installedPane.tabTitle(), installedPane);
tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_Update"), new PluginUpdatePane(tabbedPane));
tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_All_Plugins"), new PluginFromStorePane(tabbedPane));
}
}

1
designer_base/src/com/fr/design/extra/LoginWebBridge.java

@ -91,6 +91,7 @@ public class LoginWebBridge {
}
public void setDialogHandle(UIDialog uiDialog) {
closeWindow();
this.uiDialog = uiDialog;
}

10
designer_base/src/com/fr/design/extra/PluginWebBridge.java

@ -136,6 +136,7 @@ public class PluginWebBridge {
}
public void setDialogHandle(UIDialog uiDialog) {
closeWindow();
this.uiDialog = uiDialog;
}
@ -367,6 +368,7 @@ public class PluginWebBridge {
/**
* 获取系统登录的用户名
*
* @param callback
*/
public void getLoginInfo(final JSObject callback) {
@ -381,7 +383,7 @@ public class PluginWebBridge {
try {
String loginUrl = SiteCenter.getInstance().acquireUrlByKind("bbs.default");
Desktop.getDesktop().browse(new URI(loginUrl));
}catch (Exception exp) {
} catch (Exception exp) {
FRContext.getLogger().info(exp.getMessage());
}
}
@ -493,13 +495,14 @@ public class PluginWebBridge {
/*-------------------------------登录部分的处理----------------------------------*/
/**
* 注册页面
*/
public void registerHref() {
try {
Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.register")));
}catch (Exception e) {
} catch (Exception e) {
FRContext.getLogger().info(e.getMessage());
}
}
@ -510,7 +513,7 @@ public class PluginWebBridge {
public void forgetHref() {
try {
Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("bbs.reset")));
}catch (Exception e) {
} catch (Exception e) {
FRContext.getLogger().info(e.getMessage());
}
}
@ -521,6 +524,7 @@ public class PluginWebBridge {
/**
* 登录操作的回调
*
* @param username
* @param password
* @return

11
designer_base/src/com/fr/design/extra/QQLoginWebBridge.java

@ -3,15 +3,13 @@ package com.fr.design.extra;
import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.UIDialog;
import com.fr.design.gui.ilable.UILabel;
import com.fr.general.FRLogger;
import com.fr.general.SiteCenter;
import javafx.scene.web.WebEngine;
import org.json.JSONObject;
import netscape.javascript.JSObject;
import org.json.JSONObject;
import javax.swing.*;
import java.awt.*;
import java.io.IOException;
import java.net.URI;
/**
@ -50,10 +48,12 @@ public class QQLoginWebBridge {
}
public void setDialogHandle(UIDialog uiDialog) {
closeParentWindow();
this.uiDialog = uiDialog;
}
public void setQQDialogHandle(UIDialog uiDialog) {
closeQQWindow();
this.qqDialog = uiDialog;
}
@ -99,6 +99,7 @@ public class QQLoginWebBridge {
/**
* 获取用户信息
*
* @param userInfo
*/
public void getLoginInfo(String userInfo) {
@ -113,12 +114,12 @@ public class QQLoginWebBridge {
DesignerEnvManager.getEnvManager().setBBSName(username);
DesignerEnvManager.getEnvManager().setBbsUid(uid);
DesignerEnvManager.getEnvManager().setInShowBBsName(username);
}else if (status.equals(LOGINFAILED)){
} else if (status.equals(LOGINFAILED)) {
//账号没有QQ授权
closeQQWindow();
try {
Desktop.getDesktop().browse(new URI(SiteCenter.getInstance().acquireUrlByKind("QQ_binding")));
}catch (Exception exp) {
} catch (Exception exp) {
}
}
}

36
designer_base/src/com/fr/design/extra/ReuseWebBridge.java

@ -1,36 +0,0 @@
package com.fr.design.extra;
import javafx.scene.web.WebEngine;
/**
* Created by vito on 2016/9/28.
*/
public class ReuseWebBridge {
public static ReuseWebBridge helper;
private WebEngine webEngine;
public static ReuseWebBridge getHelper() {
if (helper != null) {
return helper;
}
synchronized (ReuseWebBridge.class) {
if (helper == null) {
helper = new ReuseWebBridge();
}
return helper;
}
}
public static ReuseWebBridge getHelper(WebEngine webEngine) {
getHelper();
helper.setEngine(webEngine);
return helper;
}
private ReuseWebBridge() {
}
public void setEngine(WebEngine webEngine) {
this.webEngine = webEngine;
}
}

54
designer_base/src/com/fr/design/extra/ReuseWebPane.java

@ -1,54 +0,0 @@
package com.fr.design.extra;
import javafx.application.Platform;
import javafx.embed.swing.JFXPanel;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebEvent;
import javafx.scene.web.WebView;
import netscape.javascript.JSObject;
import javax.swing.*;
/**
* Created by vito on 2016/9/28.
*/
public class ReuseWebPane extends JFXPanel {
private WebEngine webEngine;
public ReuseWebPane(final String mainJs) {
Platform.setImplicitExit(false);
Platform.runLater(new Runnable() {
@Override
public void run() {
BorderPane root = new BorderPane();
Scene scene = new Scene(root);
ReuseWebPane.this.setScene(scene);
WebView webView = new WebView();
webEngine = webView.getEngine();
webEngine.load("file:///" + mainJs);
webEngine.setOnAlert(new EventHandler<WebEvent<String>>() {
@Override
public void handle(WebEvent<String> event) {
showAlert(event.getData());
}
});
JSObject obj = (JSObject) webEngine.executeScript("window");
obj.setMember("ReuseHelper", ReuseWebBridge.getHelper(webEngine));
webView.setContextMenuEnabled(false);//屏蔽右键
root.setCenter(webView);
}
});
}
private void showAlert(final String message) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JOptionPane.showMessageDialog(ReuseWebPane.this, message);
}
});
}
}

6
designer_base/src/com/fr/design/extra/WebDialog.java

@ -70,10 +70,10 @@ public class WebDialog {
/**
* 以关键词打开设计器商店
* <p>
* // * @param keyword 关键词
*
* @param keyword 关键词
*/
public void createPluginDialog(String keyword) {
public static void createPluginDialog(String keyword) {
PluginWebBridge.getHelper().openWithSearch(keyword);
createPluginDialog();
}

Loading…
Cancel
Save