📄 smsfactory.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 + -