package org.infosec.ismp.applet.manager.task;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.SwingWorker;
import org.infosec.ismp.applet.manager.model.DomainModel;
import org.infosec.ismp.applet.manager.model.NodeModel;
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.NodeEntity;
public class SaveAllTask extends SwingWorker<Object, Object>{
@SuppressWarnings("unchecked")
@Override
protected Object doInBackground() throws Exception {
List elments = TopoConst.BOX.getAllElements();
List<NodeEntity> nodeEntitys = new ArrayList<NodeEntity>();
for(Object element:elments) {
if(element instanceof NodeModel) {
NodeEntity nodeEntity = new NodeEntity();
ChangeModelUtil.changeModel(nodeEntity,(NodeModel)element);
nodeEntitys.add(nodeEntity);
}else if(element instanceof DomainModel) {
NodeEntity nodeEntity = ((DomainModel)element).getDatabaseNode();
nodeEntity.setPointX((int)((DomainModel)element).getX());
nodeEntity.setPointY((int)((DomainModel)element).getY());
nodeEntitys.add(nodeEntity);
}
}
return ServiceUtil.newInstance().getWebDeviceService().saveOrUpdateNodes(nodeEntitys);
}
protected void done() {
try {
get();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"保存设备位置错误!" , "错误", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
}