【Java开源代码栏目提醒】:网学会员为广大网友收集整理了,ArchiveWizard.java,希望对大家有所帮助!
package cn.com.chengang.sms.archive.wizard;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.Wizard;
import cn.com.chengang.sms.Constants;
import cn.com.chengang.sms.db.DbOperate;
import cn.com.chengang.sms.model.IUser;
import cn.com.chengang.sms.model.Student;
import cn.com.chengang.sms.model.Teacher;
import cn.com.chengang.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;
}
}
上一篇:
ArchiveListForm.java
下一篇:
陈进-计算机网络安全毕业论文