分享

(DM)用户登陆对话框(LoginDialog)

 jinzq 2007-04-19

package test.test.gc;

import gef.tutorial.stepii.StepiiPlugin;

import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
//import MyTestPlugin.preferences.PreferenceConstants;
//import MyTestPlugin.util.LayoutUtil;

/** 登录对话框 */
public class LoginDialog extends TitleAreaDialog {

    /** 用户名 */
    private Text userName;

    /** 密码 */
    private Text password;

    public LoginDialog(Shell parentShell) {
        super(parentShell);
    }

    /** 设置登录对话框的属性 */
    protected void configureShell(Shell newShell) {
        //super.configureShell(newShell);
        newShell.setText("用户登录");
        newShell.setSize(300, 200);
        newShell.setImage(Display.getDefault().getSystemImage(SWT.ICON_WORKING));
        //newShell.setImage(StepiiPlugin.getImageDescriptor("icons/sample.gif").createImage());
        //LayoutUtil.centerShell(Display.getCurrent(), newShell);
    }

    /** 设置登录对话框的内容属性 */
    protected Control createContents(Composite parent) {
        super.createContents(parent);
        this.setTitle("用户登录");
        this.setMessage("请输入用户名和密码登录系统");
        //this.setTitleImage(Image.win32_new (Display.getDefault(), SWT.ICON, 65545));
        return parent;
    }

    /** 设置登录对话框内容区的属性 */
    protected Control createDialogArea(Composite parent) {
        super.createDialogArea(parent);
        Composite composite = new Composite(parent, SWT.NONE);
        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        GridLayout layout = new GridLayout(2, false);
        composite.setLayout(layout);
        new Label(composite, SWT.NONE).setText("用户名:");
        userName = new Text(composite, SWT.BORDER);
        userName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        new Label(composite, SWT.NONE).setText("密码:");
        password = new Text(composite, SWT.BORDER);
        password.setEchoChar(‘*‘);
        password.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        return parent;
    }

    /** 覆盖父类的方法,当单击按钮时调用 */
    protected void buttonPressed(int buttonId) {
        /** 如果单击了确定按钮 */
        if (IDialogConstants.OK_ID == buttonId) {
            /** 用户名不为空 */
            if (userName.getText().equals("")) {
                this.setErrorMessage("用户名不为空");
                return;
            }
            /** 密码不为空 */
            if (password.getText().equals("")) {
               
                //this.setTitleImage(Image.win32_new (Display.getDefault(), SWT.ICON, 65545));
                this.setErrorMessage("密码不为空!");
                return;
            }
            /**验证用户名密码*/
            boolean bValid = checkValid();
            if (!bValid) {
                this.setErrorMessage("用户名或密码错误!");
                return;
            }
            okPressed();
        } else if (IDialogConstants.CANCEL_ID == buttonId)
            cancelPressed();
    }

    /** 判断验证用户名和密码 */
    private boolean checkValid() {
        boolean bValid = false;
        /**将用户输入用户名与首选项中设置的用户名和密码对比,如果正确,则验证成功*/
        //IPreferenceStore store = StepiiPlugin.getDefault().getPreferenceStore();
        //if (userName.getText().equals(store.getString(PreferenceConstants.P_USER_NAME)) && password.getText().equals(store.getString(PreferenceConstants.P_USER_NAME)))
            //bValid = true;
        return bValid;
    }
}


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多