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; } }