package eu.telecom.sudparis.dpwsim.upgrade;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import eu.telecom.sudparis.dpws.OperationCommand;
import eu.telecom.sudparis.dpwsim.view.DPWSimMainWindow;
import eu.telecom.sudparis.dpwsim.view.tools.SwingUtilities;
/**
* Real implementation of OperationCommand
*
* @author Son Han
* @date 2013/09/20
* @version 2.0
* @version 3.0, 2013/12/09
*/
public class DPWSimOperationCommand implements OperationCommand, Serializable{
private static final long serialVersionUID = -668772726827277590L;
private DPWSimDevice device;
private List<OperationParam> params = new ArrayList<>();
public DPWSimOperationCommand(DPWSimDevice device){
this.setDevice(device);
}
public DPWSimOperationCommand(DPWSimDevice device, List<OperationParam> params){
if (device != null) this.setDevice(device);
if (params != null) this.setParams(params);
}
@Override
public String execute(String paramValue) {
//Iterator iconURL = params.iterator();
String iconURL = "";
String result = "default";
if (params != null){
Iterator<OperationParam> itr = params.iterator();
while (itr.hasNext()){
OperationParam param = itr.next();
if (param.getRequest().equals(paramValue)){
iconURL = param.getUrl();
result = param.getResponse();
break;
}
}
}
ImageIcon icon = SwingUtilities.createImageIcon(iconURL);
if (icon == null) icon = SwingUtilities.createDefaultDeviceIcon();
if (MediatorComponent.getInstance().getMainWidow().getMode() == DPWSimMainWindow.MODE_DEVICE_CREATED){
device.setIcon(icon);
} else {
device.setIcon(new ImageIcon(
SwingUtilities.resizeToHeight(icon.getImage(), 32)));
}
return result;
}
//
// public List<String> listParams(){
// List<String> result = new ArrayList<>();
//
// Iterator<OperationParam> itr = params.iterator();
// while (itr.hasNext()){
// OperationParam param = itr.next();
// result.add(param.getRequest());
// }
// return result;
// }
//
public DPWSimDevice getDevice() {
return device;
}
public void setDevice(DPWSimDevice device) {
this.device = device;
}
public List<OperationParam> getParams() {
return params;
}
public void setParams(List<OperationParam> params) {
this.params = params;
}
}