📄 searchview.java
字号:
package com.zdh.sms;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.ViewPart;
import com.zdh.sms.db.DbOperate;
import com.zdh.sms.editor.ScoreEditor;
import com.zdh.sms.editor.ScoreEditorInput;
import com.zdh.sms.model.Course;
import com.zdh.sms.model.Exam;
import com.zdh.sms.model.SchoolClass;
import com.zdh.sms.system.Context;
import com.zdh.sms.system.SmsFactory;
import com.zdh.sms.system.SmsUtil;
public class SearchView extends ViewPart implements ModifyListener,
ILogoffListener {
private Combo schoolClassCombo, courseCombo, examCombo;// 班级,课程,考试下拉框
private Composite parent;
private Group group;
public void createPartControl(Composite parent) {
this.parent = parent;
if (Context.getInstance().isLogon())
createGroup();// 如果登录则创建搜索Group
Context.getInstance().addLogonListener(this);
}
private void createGroup() {
// 创建一个Group组
group = new Group(parent, SWT.NONE);
group.setLayoutData(new GridData(GridData.FILL_BOTH));
group.setLayout(new FillLayout(SWT.VERTICAL));
group.setText("根据考试查询成绩");
// 创建Group组里的组件
new Label(group, SWT.NONE).setText("班级:");
schoolClassCombo = SmsUtil.createSchoolClassCombo(group, SWT.READ_ONLY);
schoolClassCombo.setText(schoolClassCombo.getItem(0));
schoolClassCombo.addModifyListener(this);
new Label(group, SWT.NONE).setText("课程:");
courseCombo = SmsUtil.createCourseCombo(group, SWT.READ_ONLY);
courseCombo.select(0);
courseCombo.addModifyListener(this);
new Label(group, SWT.NONE).setText("考试:");
examCombo = new Combo(group, SWT.READ_ONLY);
modifyText(null);// 调用修改事件,填充值到考试下拉框
Button searchButton = new Button(group, SWT.READ_ONLY);
searchButton.setText("搜索");
searchButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String key = examCombo.getText();
Exam exam = (Exam) examCombo.getData(key);
if (exam == null)
return;
try {
ScoreEditorInput ei = new ScoreEditorInput();
// 设置编辑器标题:日期+考试名
ei.setName(exam.getDate() + exam.getName());
String editorId = ScoreEditor.class.getName();
IWorkbenchPage workbenchPage = getViewSite().getPage();
ScoreEditor editor = (ScoreEditor) workbenchPage
.openEditor(ei, editorId);
editor.setExam(exam);// 将考试对象传到编辑器中
} catch (PartInitException e2) {
e2.printStackTrace();
}
}
});
}
public void setFocus() {
}
// 监听班级、课程下拉框是否改变了选择值, 如是,则查询出相应的考试记录
private String old1 = "", old2 = "";
public void modifyText(ModifyEvent e) {
String new1 = schoolClassCombo.getText();
String new2 = courseCombo.getText();
// 如所选值未变,就没有必要往下执行了
if (old1.equals(new1) && old2.equals(new2))
return;
old1 = new1;
old2 = new2;
examCombo.removeAll();// 清空
SchoolClass o1 = (SchoolClass) schoolClassCombo.getData(new1);
Course o2 = (Course) courseCombo.getData(new2);
DbOperate db = SmsFactory.getDbOperate();
for (Exam exam : db.getExam(o2, o1)) {
String s = SmsUtil.dateToShortStr(exam.getDate()) + exam.getName();
examCombo.add(s);
examCombo.setData(s, exam);
}
examCombo.select(0);
}
@Override
public void dispose() {
Context.getInstance().removeLogonListener(this);
super.dispose();
}
// 用户登录时,创建搜索Group
public void logon() {
createGroup();
parent.layout();// 刷新搜索Group才能显示出来
}
// 用户退出时,将搜索Group销毁掉
public void logoff() {
group.dispose();
group = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -