package com.topsun.posclient.sales.dialog;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import com.topsun.posclient.common.POSException;
import com.topsun.posclient.common.ui.style.CommonCss;
import com.topsun.posclient.datamodel.User;
import com.topsun.posclient.sales.MessageResources;
import com.topsun.posclient.sales.core.service.ISalesService;
import com.topsun.posclient.sales.core.service.impl.SalesServiceImpl;
/**
* 用户密码权限认证对话框
*
* @author Dong
*
*/
public class AuthDialog extends Dialog {
private int doFlag;//0 折扣 1 抹零 2 qita
private Text userAccount;
private Text password;
private User user;
protected void configureShell(Shell newShell) {
newShell.setText("权限确认");
super.configureShell(newShell);
}
public final int getDoFlag() {
return doFlag;
}
public final void setDoFlag(int doFlag) {
this.doFlag = doFlag;
}
public final Text getPassword() {
return password;
}
public final void setPassword(Text password) {
this.password = password;
}
public final Text getUserAccount() {
return userAccount;
}
public final void setUserAccount(Text userAccount) {
this.userAccount = userAccount;
}
public AuthDialog(Shell parent) {
super(parent);
}
public AuthDialog(Shell parent, int doFlag) {
super(parent);
this.doFlag = doFlag;
}
protected Control createContents(Composite parent) {
Composite compsite = new Composite(parent, SWT.BORDER);
compsite.setLayout(new GridLayout(2, false));
GridData layoutData = new GridData(GridData.FILL_BOTH);
compsite.setLayoutData(layoutData);
{
Label label = new Label(compsite, SWT.NONE);
GridData data = new GridData(GridData.FILL_HORIZONTAL);
label.setLayoutData(data);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
label.setText("账号");
}
{
userAccount = new Text(compsite, SWT.BORDER);
GridData data = CommonCss.getDefaultTextData();
userAccount.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
userAccount.setLayoutData(data);
}
{
Label label = new Label(compsite, SWT.NONE);
GridData data = new GridData(GridData.FILL_HORIZONTAL);
label.setLayoutData(data);
label.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
label.setText("密码");
}
{
password = new Text(compsite, SWT.PASSWORD|SWT.BORDER);
GridData data = CommonCss.getDefaultTextData();
password.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
password.setLayoutData(data);
}
return super.createContents(parent);
}
protected void createButtonsForButtonBar(Composite parent) {
int buttonWidth = 80;
int buttonHight = 45;
parent.setLayout(new GridLayout(5,false));
Button okbtn = createButton(parent, IDialogConstants.OK_ID, "确定",true);
okbtn.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
GridData btnLayout = new GridData();
btnLayout.widthHint = buttonWidth;
btnLayout.heightHint = buttonHight;
okbtn.setLayoutData(btnLayout);
Button cancelBtn = createButton(parent, IDialogConstants.CANCEL_ID, "取消", false);
cancelBtn.setFont(CommonCss.getDefaultFont(parent.getDisplay()));
cancelBtn.setLayoutData(btnLayout);
}
protected void okPressed() {
String inputUserAccount = userAccount.getText();
String inputPassword = password.getText();
if(null == inputUserAccount || "".equals(inputUserAccount.trim())){
MessageDialog.openInformation(this.getShell(), MessageResources.message_ui_tips, "【账号】不能为空");
userAccount.setFocus();
return;
}else{
if(null == inputPassword || "".equals(inputPassword.trim())){
MessageDialog.openInformation(this.getShell(), MessageResources.message_ui_tips, "【密码】不能为空");
userAccount.setFocus();
return;
}else{
ISalesService salesService = new SalesServiceImpl();
boolean flag = false;
try {
flag = salesService.validateAccount(inputUserAccount, inputPassword, doFlag);
if(!flag){
MessageDialog.openError(this.getShell(), MessageResources.message_ui_tips, "没有权限");
userAccount.setFocus();
return;
}
User authUser = salesService.getUserByUserAccountAndPassword(inputUserAccount, inputPassword);
this.setUser(authUser);
} catch (POSException e) {
MessageDialog.openError(this.getShell(), MessageResources.message_ui_tips, e.getErrorMessage());
return;
}
}
}
super.okPressed();
}
protected Button createButton(Composite parent, int id, String label,
boolean defaultButton) {
return super.createButton(parent, id, label, defaultButton);
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}