📄 msnmanager.java
字号:
package jm.form.msn;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import javax.swing.JOptionPane;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamWriter;
import jm.JM;
import jm.dbo.JMDBOConnectionPool;
import jm.dbo.JMDBOConntionInfoKeyValue;
import jm.entity.CommandSYKeys;
import jm.entity.ESC000500;
import jm.entity.ESC000700;
import jm.entity.ESM000200;
import jm.entity.ESM000300;
import jm.entity.ESM000500;
import jm.form.msn.bean.BusinessUser;
import jm.form.msn.config.JMMRConfig;
import jm.form.msn.config.JMMRConfigConstants;
import jm.form.msn.ctrl.MsgSegmenter;
import jm.form.msn.form.Log;
import jm.form.msn.form.Main;
import jm.form.msn.util.Logger;
import jm.form.msn.util.Manager;
import jm.framework.util.SimpleEntityTable;
import jm.util.JMVector;
/**
* 系统管理主程序
* 梦界家园MSNP12
* @author ISHome
* @since 0.1
* @version 0.5.0.2.1
*/
@SuppressWarnings("unchecked")
public class MSNManager implements JMMRConfigConstants, Manager {
private static MSNManager instance;
/**
* 获得程序实例
*
* @return
*/
public static MSNManager getinstance() {
if (instance == null)
instance = new MSNManager();
return instance;
}
/**
* 起动程序 显示版权信息
*/
public void run() {
//是否自动运行
License license = new License(getinstance());
openFrame(license);
}
/**
* MSN机器人实例
*/
private MSNServer msn = null;
/**
* 起动服务
*/
public void runServer() {
if (msn == null) {
msn = new MSNServer(this);
msn.start();
getLogger().info("logining ......");
}
}
/**
* 关闭服务
*/
public void closeServer() {
try {
msn.stop();
} catch (Exception e) {
}
System.exit(0);
}
/**
* 显示画面
*
* @param fame
* 被显示画面
*/
public void openFrame(Component fame) {
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
fame.setLocation((d.width - fame.getSize().width) / 2, (d.height - fame.getSize().height) / 2);
fame.setVisible(true);
}
// *********************画面************************* */
// 主画面
private Main main;
public Main getMainForm() {
if (main == null)
main = new Main(getinstance());
return main;
}
/**
* 运行主画面
*/
public void runMainForm() {
if (main != null)
main.dispose();
main = new Main(getinstance());
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
main.setLocation((d.width - main.getSize().width), (d.height - main.getSize().height * 2));
main.setVisible(true);
}
// ** *********************数据********************** */
private Hashtable<String, String> configMap;
public void loadConfigMap() {
configMap = new Hashtable<String, String>();
// 数据初始化//配置文件读取
try {
configMap = JMMRConfig.getConfigs();
} catch (Exception e) {
showErrorMessageDialog("配置文件读取异常!");
System.exit(0);
}
}
/**
* 获得配置信息
*
* @return
*/
public Hashtable<String, String> getConfigMap() {
if (configMap == null) {
loadConfigMap();
}
return configMap;
}
/**
* 保存配置信息到文件
*
* @param fileNameKey
* @param config
*/
public void saveConfigFile(String fileNameKey, Hashtable<String, String> config) {
final String NEW_LINE = "\n";
try{
//创建工厂
XMLOutputFactory outputFactory=XMLOutputFactory.newInstance();
FileOutputStream output=new FileOutputStream(new File(getConfigMap().get(fileNameKey)));
XMLStreamWriter XMLStreamWriterr=outputFactory.createXMLStreamWriter(output,"utf-8");
//创建头部信息
XMLStreamWriterr.writeStartDocument("utf-8","1.0");
XMLStreamWriterr.writeCharacters(NEW_LINE);
//创建开始标记
XMLStreamWriterr.writeStartElement(CONFIG);
XMLStreamWriterr.writeCharacters(NEW_LINE);
//保存全部内容
Iterator it = config.entrySet().iterator();
while (it.hasNext()) {
Map.Entry mpField = (Map.Entry) it.next();
XMLStreamWriterr.writeStartElement(""+mpField.getKey());
XMLStreamWriterr.writeCharacters(""+mpField.getValue());
XMLStreamWriterr.writeEndElement();
XMLStreamWriterr.writeCharacters(NEW_LINE);
}
//结束XML
XMLStreamWriterr.writeEndElement();
XMLStreamWriterr.writeEndDocument() ;
//关闭数据流
XMLStreamWriterr.flush();
XMLStreamWriterr.close();
this.showInfoMessageDialog(getConfigMap().get(fileNameKey)+"\r\n"+getConfigMap().get(LANG_CONFIG_SAVE_SUCCESS));
} catch (Exception e) {
e.printStackTrace();
this.showErrorMessageDialog(getConfigMap().get(fileNameKey)+"\r\n"+getConfigMap().get(LANG_CONFIG_SAVE_FAILED));
}
}
//////////////////////////////
/** 全部FAQ信息 */
private Hashtable<String, ESM000500> faqMap;
/**
* 获得全部FAQ信息
*
* @return FAQ信息
*/
public Hashtable<String, ESM000500> getFaqMap() {
if (faqMap == null) {
try {
ESM000500 faq = new ESM000500();
JMVector faqList = (new SimpleEntityTable(faq, true)).select().getResultList();
faqMap = new Hashtable<String, ESM000500>();
for (int i = 0; i < faqList.size(); i++) {
faq = (ESM000500) faqList.get(i);
faqMap.put(faq.getNumID(), faq);
}
} catch (Exception e) {
getLogger().error(null, e);
}
}
return faqMap;
}
/** 全部Talk信息 */
private Hashtable<String, ESM000200> talkMap;
private Log logForm = null;
/**
* 获得日志画面
*/
public Log getLogForm() {
if (logForm == null)
logForm = new Log(getMainForm(), this);
return logForm;
}
/**
* 获得日志
*/
public Logger getLogger() {
return getLogForm();
}
/**
* 获得全部Talk信息
*
* @return Talk信息
*/
public Hashtable<String, ESM000200> getTalkMap() {
if (talkMap == null) {
try {
ESM000200 talk = new ESM000200();
JMVector faqList = (new SimpleEntityTable(talk, true)).select().getResultList();
talkMap = new Hashtable<String, ESM000200>();
for (int i = 0; i < faqList.size(); i++) {
talk = (ESM000200) faqList.get(i);
talkMap.put(talk.getNumID(), talk);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return talkMap;
}
// ** *********************JMDBOConnectionPool************************ */
private JMDBOConnectionPool connectionPool;
/**
* 获得数据库连接
*
* @return
*/
public JMDBOConnectionPool getConnectionPool() {
try {
if (connectionPool == null) {
JMDBOConntionInfoKeyValue dbconfig = new JMDBOConntionInfoKeyValue();
dbconfig.setDriver(getConfigMap().get(CONFIG_DATABASE_DRIVER));
dbconfig.setUrl(getConfigMap().get(CONFIG_DATABASE_URL));
dbconfig.setUser(getConfigMap().get(CONFIG_DATABASE_USER));
dbconfig.setPassword(getConfigMap().get(CONFIG_DATABASE_PASSWORD));
dbconfig.setMaxcon(getConfigMap().get(CONFIG_DATABASE_CON_MAX));
connectionPool = new JMDBOConnectionPool(dbconfig);
}
} catch (Exception e) {
e.printStackTrace();
MSNManager.getinstance().showErrorMessageDialog("配置文件读取异常!");
}
return connectionPool;
}
/** 连接用户全部数据 */
private Hashtable<String, BusinessUser> userList = new Hashtable<String, BusinessUser>();
/**
* 获得系统运行时候的用户临时数据
*
* @return
*/
public Hashtable<String, BusinessUser> getUserList() {
return userList;
}
// ////////////////////////////////////////////////////
/** 允许访问用户列表 */
private Hashtable<String, ESM000300> canUseList;
/**
* (商业用)获得允许访问用户ID
*
* @param u
* @return
*/
public String getBusinessUsers(BusinessUser u) {
try {
ESM000300 user = getBusinessCanUseList().get(u.getMsnID());
return user.getUserID();
} catch (Exception e) {
return JM.Author;
}
}
/**
* (商业用)获得允许访问用户列表
*
* @return
*/
public Hashtable<String, ESM000300> getBusinessCanUseList() {
if (canUseList == null) {
try {
ESM000300 user = new ESM000300();
JMVector out = (new SimpleEntityTable(user, true)).select().getResultList();
canUseList = new Hashtable<String, ESM000300>();
for (int i = 0; i < out.size(); i++) {
user = (ESM000300) out.get(i);
canUseList.put(user.getLoginID(), user);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return canUseList;
}
/** 命令管理列表 */
private Hashtable<String, String> gamenList;
/**
* (商业用)获得商业命令列表
*
* @return
*/
public Hashtable<String, String> getBusinessGamenList() {
if (gamenList == null) {
try {
ESC000700 gamen = new ESC000700();
JMVector out = (new SimpleEntityTable(gamen, true)).select().getResultList();
gamenList = new Hashtable<String, String>();
for (int i = 0; i < out.size(); i++) {
gamen = (ESC000700) out.get(i);
gamenList.put(gamen.getGamenID(), gamen.getGamenPath());
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return gamenList;
}
/** 权限设置列表 */
private Hashtable<String, JMVector> roolList;
/**
* (商业用)确认权限
*
* @param u
* @param gamenID
* @return
*/
public boolean haveBusinessRool(BusinessUser u, String gamenID) {
try {
JMVector rool = getBusinessRoolList().get(u.getUserID());
return rool.contains(gamenID);
} catch (Exception e) {
return false;
}
}
/**
* (商业用)获得权限设置列表
*
* @return
*/
public Hashtable<String, JMVector> getBusinessRoolList() {
if (roolList == null) {
try {
ESC000500 rool = new ESC000500();
JMVector list = null;
JMVector out = (new SimpleEntityTable(rool, true)).select().getResultList();
roolList = new Hashtable<String, JMVector>();
for (int i = 0; i < out.size(); i++) {
rool = (ESC000500) out.get(i);
list = roolList.get(rool.getUserID());
if (list == null) {
list = new JMVector();
}
list.add(rool.getGamenID());
roolList.put(rool.getUserID(), list);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
return roolList;
}
// ////////////////////////////////////////////////////
/**
* 显示警告信息
*
* @param message
* String
*/
public void showErrorMessageDialog(String message) {
JOptionPane.showMessageDialog(null, message, CommandSYKeys.MESSAGE_ERROR, JOptionPane.ERROR_MESSAGE);
}
/**
* 显示确认信息
*
* @param message
* String
*/
public int showConfirmMessageDialog(String message) {
return JOptionPane.showConfirmDialog(null, message, CommandSYKeys.MESSAGE_CONFIRM, JOptionPane.YES_NO_OPTION);
}
/**
* 显示提示信息
*
* @param message
*/
public void showInfoMessageDialog(String message) {
JOptionPane.showMessageDialog(null, message, CommandSYKeys.MESSAGE_INFO, JOptionPane.INFORMATION_MESSAGE);
}
/** 分词程序 */
private MsgSegmenter segmenter = null;
public MsgSegmenter getSegmenter() {
if (segmenter == null)
segmenter = new MsgSegmenter(getinstance());
return segmenter;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -