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

📄 archivewizard.java

📁 学生成绩管理系统 eclipse rcp开发 swt技术
💻 JAVA
字号:
package com.zdh.sms.editor.wizard;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;

import com.zdh.sms.db.Constants;
import com.zdh.sms.db.DbOperate;
import com.zdh.sms.model.IUser;
import com.zdh.sms.model.Student;
import com.zdh.sms.model.Teacher;
import com.zdh.sms.system.SmsFactory;


public class ArchiveWizard extends Wizard {
	private UserTypePage userTypePage;// 选择用户类型页

	private UserInfoPage userInfoPage;// 用户基本信息页

	private CoursesPage coursesPage;// 老师所教课程设置页

	private SchoolClassPage schoolClassPage;// 选择学生所在班级页

	private IUser user;

	// 改写父类的addPages方法。在此方法将页面加入
	public void addPages() {
		// 创建页面对象,并设置页面的名称
		userTypePage = new UserTypePage("userTypePage");
		userInfoPage = new UserInfoPage("userInfoPage");
		coursesPage = new CoursesPage("coursesPage");
		schoolClassPage = new SchoolClassPage("schoolClassPage");
		addPage(userTypePage);
		addPage(userInfoPage);
		addPage(coursesPage);
		addPage(schoolClassPage);
	}

	// 改写父类的canFinish方法,由此方法判断“完成”按钮可用状态。 设置为不是最
	// 后一页“完成”按钮就不可用。最后一页界面要根据用户类型(老师、学生)来显示
	// @return false“完成”按钮不可用
	public boolean canFinish() {
		IWizardPage page = getContainer().getCurrentPage();
		if (page != coursesPage && page != schoolClassPage)
			return false;
		return super.canFinish();
	}

	// 改写父类的方法,由此方法判断当前页的下一页
	public IWizardPage getNextPage(IWizardPage page) {
		// 用户基本信息的下一页是根据UserType来判断
		if (page == userInfoPage) {
			String type = userTypePage.getUserType();
			if (type.equals(Constants.IUSER_TEACHER_TYPE))
				return coursesPage;
			else if (type.equals(Constants.IUSER_STUDENT_TYPE))
				return schoolClassPage;
		}
		// coursesPage、schoolClassPage页都没有下一页,故返回null
		if (page == coursesPage || page == schoolClassPage)
			return null;
		return super.getNextPage(page);
	}

	// 改写父类的方法,单击“完成”按钮时会执行此方法,在方法中分别将课程页、
	// 班级页、基本信息页的数据更新到user对象中
	public boolean performFinish() {
		String type = userTypePage.getUserType();
		if (type.equals(Constants.IUSER_TEACHER_TYPE)) {
			Teacher o = new Teacher();
			coursesPage.getValue(o);
			user = o;
		} else if (type.equals(Constants.IUSER_STUDENT_TYPE)) {
			Student o = new Student();
			schoolClassPage.getValue(o);
			user = o;
			
		}
		userInfoPage.getValue(user);
		// 插入前要检查数据库中是否已存在同名用户名
		DbOperate db = SmsFactory.getDbOperate();
		IUser o = db.getUser(user.getUserId());
		if (o != null) {
			MessageDialog.openError(null, "", "用户名重复,不允许插入");
			return false;
		}
		return true;
	}

	// 得到用户对象
	public IUser getUser() {
		return user;
	}
}

⌨️ 快捷键说明

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