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