package org.infosec.ismp.applet.manager.task; import javax.swing.JOptionPane; import javax.swing.SwingWorker; import org.infosec.ismp.applet.manager.model.LinkModel; import org.infosec.ismp.applet.manager.utilities.ChangeModelUtil; import org.infosec.ismp.applet.manager.utilities.ServiceUtil; import org.infosec.ismp.applet.manager.utilities.TopoConst; import org.infosec.ismp.manager.rmi.tm.manager.model.LinkEntity; /** * 去后台数据库添加Or 更新记录。 * @author 肖高峰 * */ public class AddOrUpdateLinkTask extends SwingWorker<LinkEntity, Object>{ private LinkModel link; public AddOrUpdateLinkTask(LinkModel link) { if(link == null) return; this.link = link; } @Override protected LinkEntity doInBackground() throws Exception { LinkEntity linkEntity = new LinkEntity(); ChangeModelUtil.changeLinkModel(linkEntity, link); return ServiceUtil.newInstance().getWebDeviceService().saveOrUpdateLink(linkEntity); } protected void done() { try { LinkEntity linkEntity = get(); String databaseId = linkEntity.getLinkId().toString(); if(TopoConst.getTopoID(databaseId) == null) { ChangeModelUtil.changeLinkModel(link,linkEntity); TopoConst.registerID(databaseId, link.getID().toString()); } } catch (Exception e) { TopoConst.BOX.removeElement(link); JOptionPane.showMessageDialog(null,"数据库保存连接发生错误!" , "保存错误", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } }