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

📄 scoreeditor.java

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

import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;

import com.zdh.sms.model.Exam;
import com.zdh.sms.model.Student;
import com.zdh.sms.model.StudentScore;
import com.zdh.sms.system.EditorPartAdapter;
import com.zdh.sms.system.SmsContentProvider;
import com.zdh.sms.system.SmsFactory;
import com.zdh.sms.system.TableLabelProviderAdapter;


public class ScoreEditor extends EditorPartAdapter {
	private Label examLabel; // 表头的考试信息文字

	private TableViewer tv; // 显示成绩的表格

	public void init(IEditorSite site, IEditorInput input)
			throws PartInitException {
		super.init(site, input);
		setPartName(input.getName()); // 更新编辑器的标题
	}

	public void createPartControl(Composite parent) {
		Composite topComp = new Composite(parent, SWT.NONE);
		topComp.setLayout(new FillLayout());
		createTableViewer(topComp);
		tv.setContentProvider(new SmsContentProvider());// 内容器
		tv.setLabelProvider(new TableViewerLabelProvider());// 标签器
		// 由于创建时还没有获得查询条件,所以不能setInpu
	}

	// 创建表格
	private void createTableViewer(Composite parent) {
		Composite tableComp = new Composite(parent, SWT.NONE);
		tableComp.setLayout(new GridLayout());
		examLabel = new Label(tableComp, SWT.NONE);
		examLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
		tv = new TableViewer(tableComp, SWT.MULTI | SWT.BORDER
				| SWT.FULL_SELECTION);
		Table table = tv.getTable();
		table.setLayoutData(new GridData(GridData.FILL_BOTH));
		table.setHeaderVisible(true); // 显示表头
		table.setLinesVisible(true); // 显示表格线
		// 建立TableViewer中的列
		TableLayout tLayout = new TableLayout();
		table.setLayout(tLayout);
		tLayout.addColumnData(new ColumnWeightData(10));
		new TableColumn(table, SWT.NONE).setText("ID号");
		tLayout.addColumnData(new ColumnWeightData(20));
		new TableColumn(table, SWT.NONE).setText("学生");
		tLayout.addColumnData(new ColumnWeightData(20));
		new TableColumn(table, SWT.NONE).setText("成绩");
	}

	// 更新表头的考试信息,及获得成绩数据
	public void setExam(Exam exam) {
		// 设置表头信息
		String s0 = exam.getName();
		String s1 = "    时间:" + exam.getDate();
		String s2 = "    课程:" + exam.getCourse().getName();
		String s3 = "    班级:" + exam.getSchoolClass().getName();
		String s4 = "    监考:" + exam.getTeacher().getName();
		String str = s0 + s1 + s2 + s3 + s4;
		examLabel.setText(str);
		// 获得成绩数据
		tv.setInput(SmsFactory.getDbOperate().getStudentScore(exam));
	}

	// 标签器
	private final static class TableViewerLabelProvider extends
			TableLabelProviderAdapter {
		public String getColumnText(Object element, int columnIndex) {
			StudentScore o = (StudentScore) element;
			switch (columnIndex) {
			case 0:
				return o.getId().toString();
			case 1:
				Student student = o.getStudent();
				if (student != null){
					return student.getName();
				}	
				return "";
			case 2:
				return String.valueOf(o.getScore());
			}
			return "";
		}
	}
}

⌨️ 快捷键说明

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