package com.vci.client.omd.btm.ui;
|
|
import javax.swing.JPanel;
|
|
import com.vci.client.omd.inter.ClasspathConfig;
|
import com.vci.client.omd.btm.toOutside.Datacenter;
|
import com.vci.client.omd.btm.toOutside.InterBtm;
|
import com.vci.client.omd.btm.toOutside.InterBtmManager;
|
import com.vci.client.omd.lifecycle.ui.LifeCycleList;
|
import com.vci.client.omd.versionrule.ui.VersionRuleList;
|
import com.vci.client.ui.frame.UIConstructorInterface;
|
import com.vci.client.common.ClientLog4j;
|
import com.vci.client.common.providers.ServiceProvider;
|
import com.vci.corba.omd.atm.AttribItem;
|
import com.vci.corba.omd.btm.BTMServicePrx;
|
import com.vci.corba.common.VCIError;
|
|
public class BtmClient implements UIConstructorInterface{
|
|
private static BTMServicePrx btmService = null;
|
private static BtmClient btmClient = null;
|
|
private static BtmClient getInstance(){
|
if(btmClient == null){
|
btmClient = new BtmClient();
|
}
|
return btmClient;
|
}
|
|
/**
|
* @param args
|
*/
|
// public static void main(String[] args){
|
// try {
|
// getInstance().init();
|
// } catch (VCIError e2) {
|
// e2.printStackTrace();
|
// }
|
//
|
// Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
|
//
|
// JFrame frame = new JFrame();
|
// frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
// frame.setTitle("业务类型管理");
|
// frame.setBounds(d.width/4, d.height/4, d.width/2, d.height/2);
|
//
|
// BtmPanel btmPanel = null;
|
// try {
|
// btmPanel = (BtmPanel) getInstance().start();
|
// } catch (VCIError e2) {
|
// e2.printStackTrace();
|
// }
|
// frame.add(btmPanel);
|
// frame.setVisible(true);
|
//
|
// String apContent = "";
|
// try {
|
// apContent = APClient.getService().getAPData();
|
// } catch (VCIError e1) {
|
// e1.printStackTrace();
|
// }
|
// String btmContent = null;
|
// try {
|
// btmContent = BtmClient.btmService.getBTMData();
|
// } catch (VCIError e) {
|
// e.printStackTrace();
|
// }
|
// //生成DDL 虽然每次改变业务类型都应该重写生成的DDL, 但考虑到此DDL文件只是留作记录
|
// //频繁重写会影响整体性能, 所以在退出程序时重新DDL
|
// DDLToolClient.getService().generatorODDLForBt(apContent, btmContent);
|
// DDLToolClient.getService().generatorSDDLForBt(apContent, btmContent);
|
// }
|
|
@Override
|
public void destory() throws VCIError {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void init() throws VCIError {
|
if(btmService != null){
|
return;
|
}
|
|
if(inject()){
|
ClientLog4j.logger.info("注入外界对业务类型中接口的实现成功");
|
}else{
|
ClientLog4j.logger.info("注入外界对业务类型中接口的实现失败");
|
}
|
try {
|
|
btmService = ServiceProvider.getOMDService().getBTMService();
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new VCIError("", new String[0]);
|
}
|
}
|
|
@Override
|
public JPanel start() throws VCIError {
|
if(setData()){
|
ClientLog4j.logger.info("设置版本规则, 生命周期成功");
|
}else{
|
ClientLog4j.logger.info("设置版本规则, 生命周期失败");
|
}
|
BtmPanel.cleanInstance();
|
BtmPanel btmPanel = BtmPanel.getInstance();
|
return btmPanel;
|
}
|
|
public static BTMServicePrx getService(){
|
if(btmService == null){
|
try {
|
BtmClient.getInstance().init();
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
}
|
|
return btmService;
|
}
|
|
|
/**
|
* 设置版本规则, 生命周期
|
* @return
|
*/
|
private boolean setData(){
|
try{
|
LifeCycleList l = null;
|
VersionRuleList v = null;
|
l = new LifeCycleList();
|
v = new VersionRuleList();
|
Datacenter.getInstance().setLCyleNames(l.getLifeCycles());
|
Datacenter.getInstance().setRevNames(v.getVersionRules());
|
}catch(Exception e){
|
e.printStackTrace();
|
return false;
|
}
|
return true;
|
}
|
|
/**
|
* 注入外界对业务类型中接口的实现
|
*/
|
private boolean inject(){
|
boolean flag = false;
|
String impls = ClasspathConfig.getProperty("interBtmImpl");
|
String[] implArray = impls.split(";");
|
for(int i = 0; i < implArray.length; i++){
|
InterBtm interBtm = null;
|
try {
|
String classpath = implArray[i];
|
if(classpath == null || classpath.equals("")){
|
continue;
|
}
|
interBtm = (InterBtm)Class.forName(classpath).newInstance();
|
} catch (InstantiationException e) {
|
e.printStackTrace();
|
return flag;
|
} catch (IllegalAccessException e) {
|
e.printStackTrace();
|
return flag;
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
return flag;
|
}
|
InterBtmManager.getInstance().registerInter(interBtm);
|
flag = true;
|
}
|
return flag;
|
}
|
}
|