帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

81 lines
2.2 KiB

/**
*
*/
package com.fr.design.mainframe.bbs;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import com.fr.base.BaseUtils;
import com.fr.design.bbs.BBSLoginUtils;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.imenu.UIMenuItem;
import com.fr.design.gui.imenu.UIPopupMenu;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
/**
* @author neil
*
* @date: 2015-3-5-上午11:52:58
*/
public class ExitLabel extends UILabel{
private static final int MENU_HEIGHT = 20;
private UserInfoPane infoPane;
/**
* 构造函数
*/
public ExitLabel(UserInfoPane infoPane) {
this.infoPane = infoPane;
this.setIcon(BaseUtils.readIcon("/com/fr/design/mainframe/bbs/images/switch.png"));
this.addMouseListener(mouseListener);
}
private MouseAdapter mouseListener = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
UIPopupMenu menu = new UIPopupMenu();
menu.setOnlyText(true);
menu.setPopupSize(infoPane.getWidth(),infoPane.getHeight());
UIMenuItem closeOther = new UIMenuItem(Inter.getLocText("FR-Designer-BBSLogin_Switch-Account"));
closeOther.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
clearLoingInformation();
updateInfoPane();
};
});
menu.add(closeOther);
GUICoreUtils.showPopupMenu(menu, ExitLabel.this, 0, MENU_HEIGHT);
}
private void clearLoingInformation(){
BBSLoginUtils.bbsLogout();
}
private void updateInfoPane(){
infoPane.markUnSignIn();
ExitLabel.this.setVisible(false);
BBSLoginDialog loginDialog = infoPane.getUserInfoLabel().getBbsLoginDialog();
if(loginDialog == null){
loginDialog = new BBSLoginDialog(DesignerContext.getDesignerFrame(), infoPane.getUserInfoLabel());
infoPane.getUserInfoLabel().setBbsLoginDialog(loginDialog);
loginDialog.showWindow();
}
loginDialog.getTipLabel().setVisible(false);
loginDialog.setModal(true);
loginDialog.clearLoginInformation();
loginDialog.setVisible(true);
}
};
}