?? 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 + -