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

📄 smsfactory.java

📁 学生成绩管理系统
💻 JAVA
字号:
package cn.com.chengang.sms.system;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;

import cn.com.chengang.sms.Activator;
import cn.com.chengang.sms.Constants;
import cn.com.chengang.sms.archive.ArchiveEditor;
import cn.com.chengang.sms.archive.ArchiveEditorInput;
import cn.com.chengang.sms.db.DbOperate;
import cn.com.chengang.sms.db.MysqlOperate;
import cn.com.chengang.sms.db.OracleOperate;
import cn.com.chengang.sms.db.SqlServerOperate;
import cn.com.chengang.sms.model.ITreeEntry;
import cn.com.chengang.sms.navigator.NavigatorEntry;

public class SmsFactory {
	public static List<ITreeEntry> createNavigatorEntryTree() {
		//生成功能导航器的树结点
		NavigatorEntry t1 = new NavigatorEntry("数据管理");
		t1.setImage(ImagesContext.getImage(ImagesContext.STUDENT));
		NavigatorEntry t2 = new NavigatorEntry("报表输出");
		t2.setImage(ImagesContext.getImage(ImagesContext.REPORT));
		NavigatorEntry t3 = new NavigatorEntry("系统配置");
		t3.setImage(ImagesContext.getImage(ImagesContext.SYSCONFIG));
		{
			NavigatorEntry c1 = new NavigatorEntry("档案管理");
			c1.setImage(ImagesContext.getImage(ImagesContext.NOTE));
			c1.setEditorInput(new ArchiveEditorInput());
			c1.setEditorId(ArchiveEditor.class.getName());
			t1.addChild(c1);
			NavigatorEntry c2 = new NavigatorEntry("成绩管理");
			c2.setImage(ImagesContext.getImage(ImagesContext.EDITING));
			t1.addChild(c2);
		}
		//包含在一个集合中统一返回
		ArrayList<ITreeEntry> list = new ArrayList<ITreeEntry>();
		list.add(t1);
		list.add(t2);
		list.add(t3);
		list.addAll(getPluginNavigator());
		return list;
	}

	// 取得plugin.xml中的自定义结点,加入到一个List集合中
	private static List<ITreeEntry> getPluginNavigator() {
		List<ITreeEntry> result = new ArrayList<ITreeEntry>();
		// 从plugin.xml中取出自定义扩展点navigators的信息
		IExtensionRegistry registry = Platform.getExtensionRegistry();
		IExtensionPoint extension = registry.getExtensionPoint("cn.com.chengang.sms.navigators");
		if (extension == null)
			return Collections.emptyList();
		// 取出plugin.xml中所有使用navigators扩展点的配置信息
		IConfigurationElement[] configElements = extension.getConfigurationElements();
		for (IConfigurationElement ce : configElements) {
			try {
				// 根据配置信息的class属性,创建所定义的类的实例
				NavigatorEntry navigator = (NavigatorEntry) ce.createExecutableExtension("class");
				navigator.setName((String) ce.getAttribute("name"));
				String icon = (String) ce.getAttribute("icon");
				navigator.setImage(Activator.getImageDescriptor(icon).createImage());
				result.add(navigator);
			} catch (CoreException e) {
				e.printStackTrace();
			}
		}
		return result;
	}
	
	private static DbOperate db;
	public static DbOperate getDbOperate() {
		if (db == null) {
			int dbType = Constants.DBTYPE_MYSQL;// 今后改为从界面设置取值
			switch (dbType) {
			case Constants.DBTYPE_MYSQL:
				db = new MysqlOperate();
				break;
			case Constants.DBTYPE_ORACLE:
				db = new OracleOperate();
				break;
			case Constants.DBTYPE_SQLSERVER:
				db = new SqlServerOperate();
				break;
			default:
				db = new MysqlOperate();
				break;
			}
		}
		return db;
	}
}

⌨️ 快捷键说明

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