📄 archivewizard.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 + -