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

📄 teachunitname.java

📁 个人珍藏
💻 JAVA
字号:
package cn.edu.jfcs.ui;

import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.part.ViewPart;
import org.hibernate.CacheMode;
import org.hibernate.Query;
import org.hibernate.ScrollMode;
import org.hibernate.ScrollableResults;
import org.hibernate.Session;
import cn.edu.jfcs.model.YearTeachUnit;
import cn.edu.jfcs.sys.CacheImage;
import cn.edu.jfcs.sys.ControlContributionLabel;
import cn.edu.jfcs.sys.CuryearPropertyChange;
import cn.edu.jfcs.sys.HibernateSessionFactory;
import cn.edu.jfcs.sys.IAppConstants;
import cn.edu.jfcs.sys.IImageKey;
import cn.edu.jfcs.sys.YearCombo;
import cn.edu.jfcs.sys.YearManager;

public class TeachUnitName extends ViewPart implements IPropertyChangeListener {

	private TableViewer tableViewer;

	public TeachUnitName() {
	}

	public void createPartControl(Composite parent) {
		createTableViewer(parent);
		createToolbar();
		// 注册属性监听器,以便监听curYear数值发生改变时刷新本视图
		CuryearPropertyChange.getInstance().addPropertyChangeListener(
				IAppConstants.TEACH_UNIT_NAME_VIEW_ID, this);
	}

	private void createTableViewer(Composite parent) {
		tableViewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL);
		tableViewer.setUseHashlookup(true);
		final Table table = tableViewer.getTable();
		table.setBackgroundImage(CacheImage.getINSTANCE()
				.getImage(IAppConstants.APPLICATION_ID,
						IImageKey.TEACH_UNIT_NAME_VIEW_BG));
		table.setLayoutData(new GridData(GridData.FILL_BOTH));
		// 添加教学单位名称、专业课、公共课3列
		final TableColumn unitnameColumn = new TableColumn(table, SWT.LEFT);
		unitnameColumn.setWidth(152);
		final TableColumn haszykColumn = new TableColumn(table, SWT.CENTER);
		haszykColumn.setWidth(14);
		final TableColumn hasggkColumn = new TableColumn(table, SWT.CENTER);
		hasggkColumn.setWidth(14);
		table.setLinesVisible(true);
		// 设置内容器和标签容器
		tableViewer.setContentProvider(new TeachUnitNameContentProvider());
		tableViewer.setLabelProvider(new TeachUnitNameLabelProvider());
		tableViewer.setInput(getTeachUnitName(YearManager.getInstance()
				.getMaxYear()));
		// 滚动到顶端
		table.select(0);
		table.setFocus();
		// 设置监听器服务提供者:TableTreeViewer
		getViewSite().setSelectionProvider(tableViewer);
	}

	// 返回教学单位基本数据列表
	private List getTeachUnitName(int year) {
		List<Object> list = new ArrayList<Object>();
		Session session = HibernateSessionFactory
				.getSession("hibernate_derby.cfg.xml");
		Query query = session
				.getNamedQuery("cn.edu.jfcs.ui.TeachUnitName.getTeachUnitName");
		query.setInteger(0, year);
		ScrollableResults result = query.setCacheMode(CacheMode.IGNORE).scroll(
				ScrollMode.FORWARD_ONLY);
		while (result.next()) {
			YearTeachUnit ytu = (YearTeachUnit) result.get(0);
			list.add(ytu);
		}
		HibernateSessionFactory.closeSession();
		if (list.toArray().length == 0)
			list.add(new Object[0]);
		return list;
	}

	// 创建年份下拉列表框
	private void createToolbar() {
		IToolBarManager toolBarMgr = getViewSite().getActionBars()
				.getToolBarManager();
		toolBarMgr.add(new ControlContributionLabel("yearLabel", "年份"));
		toolBarMgr.add(YearCombo.getINSTANCE());
	}

	// 年份下拉列表框发生改变时,刷新本视图数据
	public void propertyChange(PropertyChangeEvent event) {
		if (event.getProperty().equals("curYear")) {
			List list = new ArrayList();
			list = getTeachUnitName(YearManager.getInstance().getCurYear());
			tableViewer.setInput(list);
			tableViewer.setSelection(new StructuredSelection(list.get(0)));
			tableViewer.getTable().setFocus();
		}
	}

	public TableViewer getTableViewer() {
		return tableViewer;
	}

	public void setTableViewer(TableViewer tableViewer) {
		this.tableViewer = tableViewer;
	}

	public void dispose() {
		CuryearPropertyChange.getInstance().removePropertyChangeListener(
				IAppConstants.TEACH_UNIT_NAME_VIEW_ID);
	}
	public void setFocus() {

	}
}

⌨️ 快捷键说明

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