⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logindialog.java

📁 基于RCP实现的CRM系统, 数据库使用mysql数据库, 是学习RCP应用和插件的很好的例子
💻 JAVA
字号:
package superCRM.dialog;

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.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 superCRM.SuperCRMPlugin;
import superCRM.preferences.PreferenceConstants;
import superCRM.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(SuperCRMPlugin.getImageDescriptor("icons/logo.gif").createImage());
		LayoutUtil.centerShell(Display.getCurrent(), newShell);
	}

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

	/** 设置登录对话框内容区的属性 */
	protected Control createDialogArea(Composite parent) {
		super.createDialogArea(parent);
		Composite composite = new Composite(parent, SWT.NONE);
		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
		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.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 = SuperCRMPlugin.getDefault().getPreferenceStore();
		
		//System.out.println("User="+store.getString(PreferenceConstants.P_USER_NAME));
		//System.out.println("User="+store.getString(PreferenceConstants.P_PASSWORD));
		
		if (userName.getText().equals(store.getString(PreferenceConstants.P_USER_NAME)) && password.getText().equals(store.getString(PreferenceConstants.P_PASSWORD)))
			bValid = true;
		return bValid;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -