Browse Source

Merge pull request #1720 in BA/design from ~YAOH.WU/a_design_0811:release/9.0 to release/9.0

* commit '15a732e1480df8fd23f874470529c1eb1b010bba':
  REPORT-6973 模板短信事件 插件设计器接口
superman 7 years ago
parent
commit
8d50617e5b
  1. 124
      designer/src/com/fr/design/mainframe/bbs/UserInfoPane.java
  2. 2
      designer/src/com/fr/start/Designer.java
  3. 17
      designer_base/src/com/fr/design/extra/LoginDialog.java
  4. 51
      designer_base/src/com/fr/design/extra/WebViewDlgHelper.java

124
designer/src/com/fr/design/mainframe/bbs/UserInfoPane.java

@ -27,42 +27,47 @@ import java.util.Date;
/**
* @author neil
*
* @date: 2015-3-5-上午11:19:50
*/
public class UserInfoPane extends BasicPane{
public class UserInfoPane extends BasicPane {
//默认未登录颜色
/**
* 默认未登录颜色
*/
private static final Color UN_LOGIN_BACKGROUND = UIConstants.TEMPLATE_TAB_PANE_BACKGROUND;
private static final Color LOGIN_BACKGROUND = new Color(184, 220, 242);
private static final int WIDTH = 104;
private static final int HEIGHT = 24;
//登录成功
/**
* 登录成功
*/
private static final String LOGININ = "0";
// 登录框弹出间隔时间
/**
* 登录框弹出间隔时间
*/
private static final int LOGIN_DIFF_DAY = 7;
// 等待国际化等相关初始化工作完成之后再弹出登录框
/**
* 等待国际化等相关初始化工作完成之后再弹出登录框
*/
private static final int WAIT_TIME = 10000;
private UserInfoLabel userInfoLabel;
public UserInfoLabel getUserInfoLabel() {
return userInfoLabel;
}
private static UserInfoPane instance = new UserInfoPane();
public void setUserInfoLabel(UserInfoLabel userInfoLabel) {
this.userInfoLabel = userInfoLabel;
}
public static UserInfoPane getInstance() {
return instance;
}
/**
* 构造函数
*/
public UserInfoPane() {
this.setPreferredSize(new Dimension(WIDTH,HEIGHT));
private UserInfoPane() {
this.setPreferredSize(new Dimension(WIDTH, HEIGHT));
this.setLayout(new BorderLayout());
this.userInfoLabel = new UserInfoLabel(this);
@ -74,12 +79,48 @@ public class UserInfoPane extends BasicPane{
this.add(userInfoLabel, BorderLayout.CENTER);
}
private void addEnvChangedListener(){
public UserInfoLabel getUserInfoLabel() {
return userInfoLabel;
}
public void setUserInfoLabel(UserInfoLabel userInfoLabel) {
this.userInfoLabel = userInfoLabel;
}
/**
* 标志未登录状态, 面板设置为灰色
*/
public void markUnSignIn() {
this.userInfoLabel.setText(Inter.getLocText("FR-Base_UnSignIn"));
this.userInfoLabel.setOpaque(true);
this.userInfoLabel.setBackground(UN_LOGIN_BACKGROUND);
this.userInfoLabel.resetUserName();
}
/**
* 标志登陆状态, 面包设置为蓝色
*
* @param userName 用户名
*/
public void markSignIn(String userName) {
this.userInfoLabel.setText(userName);
this.userInfoLabel.setUserName(userName);
this.userInfoLabel.setOpaque(true);
this.userInfoLabel.setBackground(LOGIN_BACKGROUND);
}
@Override
protected String title4PopupWindow() {
return StringUtils.EMPTY;
}
private void addEnvChangedListener() {
GeneralContext.addEnvChangedListener(new EnvChangedListener() {
@Override
public void envChanged() {
String username = ConfigManager.getProviderInstance().getBbsUsername();
if (StringUtils.isEmpty(username)){
if (StringUtils.isEmpty(username)) {
markUnSignIn();
} else {
markSignIn(username);
@ -89,13 +130,17 @@ public class UserInfoPane extends BasicPane{
}
// 计算xml保存的上次弹框时间和当前时间的时间差
private int getDiffFromLastLogin(){
/**
* 计算xml保存的上次弹框时间和当前时间的时间差
*
* @return 时间差
*/
private int getDiffFromLastLogin() {
String lastBBSTime = DesignerEnvManager.getEnvManager().getLastShowBBSTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date lastBBSDate = null;
Date lastBBSDate;
try {
if(lastBBSTime != null){
if (lastBBSTime != null) {
synchronized (this) {
lastBBSDate = sdf.parse(lastBBSTime);
}
@ -112,7 +157,7 @@ public class UserInfoPane extends BasicPane{
return 1;
}
private void autoPushLoginDialog(){
private void autoPushLoginDialog() {
Thread showBBSThread = new Thread(new Runnable() {
@Override
@ -120,12 +165,12 @@ public class UserInfoPane extends BasicPane{
try {
// 等国际化等加载完毕再启动线程弹出登录框
Thread.sleep(WAIT_TIME);
if(!FRContext.isChineseEnv()){
if (!FRContext.isChineseEnv()) {
return;
}
//七天弹一次, 如果xml中和当前时间相差小于7天, 就不弹了
if(getDiffFromLastLogin() < LOGIN_DIFF_DAY){
if (getDiffFromLastLogin() < LOGIN_DIFF_DAY) {
return;
}
@ -134,13 +179,13 @@ public class UserInfoPane extends BasicPane{
}
String userName = ConfigManager.getProviderInstance().getBbsUsername();
if(StringUtils.isNotEmpty(userName)){
if (StringUtils.isNotEmpty(userName)) {
return;
}
BBSLoginDialog bbsLoginDialog = userInfoLabel.getBbsLoginDialog();
if(bbsLoginDialog == null){
bbsLoginDialog = new BBSLoginDialog(DesignerContext.getDesignerFrame(),userInfoLabel);
if (bbsLoginDialog == null) {
bbsLoginDialog = new BBSLoginDialog(DesignerContext.getDesignerFrame(), userInfoLabel);
userInfoLabel.setBbsLoginDialog(bbsLoginDialog);
}
@ -152,32 +197,5 @@ public class UserInfoPane extends BasicPane{
showBBSThread.start();
}
/**
* 标志未登录状态, 面板设置为灰色
*
*/
public void markUnSignIn(){
this.userInfoLabel.setText(Inter.getLocText("FR-Base_UnSignIn"));
this.userInfoLabel.setOpaque(true);
this.userInfoLabel.setBackground(UN_LOGIN_BACKGROUND);
this.userInfoLabel.resetUserName();
}
/**
* 标志登陆状态, 面包设置为蓝色
* @param userName 用户名
*
*/
public void markSignIn(String userName){
this.userInfoLabel.setText(userName);
this.userInfoLabel.setUserName(userName);
this.userInfoLabel.setOpaque(true);
this.userInfoLabel.setBackground(LOGIN_BACKGROUND);
}
@Override
protected String title4PopupWindow() {
return StringUtils.EMPTY;
}
}

2
designer/src/com/fr/start/Designer.java

@ -364,7 +364,7 @@ public class Designer extends BaseDesigner {
@Override
public Component createBBSLoginPane() {
if (userInfoPane == null) {
userInfoPane = new UserInfoPane();
userInfoPane = UserInfoPane.getInstance();
}
return userInfoPane;
}

17
designer_base/src/com/fr/design/extra/LoginDialog.java

@ -4,8 +4,12 @@ import com.fr.design.dialog.UIDialog;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.stable.StableUtils;
import javax.swing.*;
import java.awt.*;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Frame;
/**
* Created by vito on 2017/5/5.
@ -15,6 +19,15 @@ public class LoginDialog extends UIDialog {
public LoginDialog(Frame frame, Component pane) {
super(frame);
init(pane);
}
public LoginDialog(Dialog dialog, Component pane) {
super(dialog);
init(pane);
}
private void init(Component pane) {
if (StableUtils.getMajorJavaVersion() == 8) {
setUndecorated(true);
}

51
designer_base/src/com/fr/design/extra/WebViewDlgHelper.java

@ -22,6 +22,9 @@ import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.Window;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Constructor;
@ -133,18 +136,22 @@ public class WebViewDlgHelper {
if (StableUtils.getMajorJavaVersion() == VERSION_8) {
File file = new File(StableUtils.pathJoin(installHome, "scripts"));
if (!file.exists()) {
int rv = JOptionPane.showConfirmDialog(
null,
Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"),
Inter.getLocText("FR-Designer-Plugin_Warning"),
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE
);
if (rv == JOptionPane.OK_OPTION) {
downloadShopScripts(SHOP_SCRIPTS);
confirmDownLoadShopJS();
} else {
showLoginDlg(DesignerContext.getDesignerFrame());
updateShopScripts(SHOP_SCRIPTS);
}
}
}
public static void createLoginDialog(Window parent) {
if (StableUtils.getMajorJavaVersion() == VERSION_8) {
File file = new File(StableUtils.pathJoin(installHome, "scripts"));
if (!file.exists()) {
confirmDownLoadShopJS();
} else {
showLoginDlg();
showLoginDlg(parent);
updateShopScripts(SHOP_SCRIPTS);
}
}
@ -164,6 +171,20 @@ public class WebViewDlgHelper {
}
}
private static void confirmDownLoadShopJS() {
int rv = JOptionPane.showConfirmDialog(
null,
Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"),
Inter.getLocText("FR-Designer-Plugin_Warning"),
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE
);
if (rv == JOptionPane.OK_OPTION) {
downloadShopScripts(SHOP_SCRIPTS);
}
}
private static void showPluginDlg(String mainJsPath) {
try {
Class<?> clazz = Class.forName("com.fr.design.extra.PluginWebPane");
@ -179,13 +200,17 @@ public class WebViewDlgHelper {
}
}
private static void showLoginDlg() {
private static void showLoginDlg(Window window) {
try {
Class<?> clazz = Class.forName("com.fr.design.extra.LoginWebPane");
Constructor constructor = clazz.getConstructor(String.class);
Component webPane = (Component) constructor.newInstance(installHome);
UIDialog qqdlg = new LoginDialog(DesignerContext.getDesignerFrame(), webPane);
UIDialog qqdlg;
if (window instanceof Dialog) {
qqdlg = new LoginDialog((Dialog) window, webPane);
} else {
qqdlg = new LoginDialog((Frame) window, webPane);
}
LoginWebBridge.getHelper().setDialogHandle(qqdlg);
qqdlg.setVisible(true);
} catch (Throwable ignored) {

Loading…
Cancel
Save