package eu.telecom.sudparis.dpwsim.upgrade;
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.GenericDevice;
import eu.telecom.sudparis.dpws.GenericEvent;
import eu.telecom.sudparis.dpws.GenericOperation;
import eu.telecom.sudparis.dpwsim.view.tools.SwingUtilities;
public class DPWSimDevice extends JLabel{
private static final long serialVersionUID = 1194833086459282796L;
private GenericDevice device;
private List<GenericOperation> ops = new ArrayList<>();
private List<EventProvider> evs = new ArrayList<>();
//private boolean isRunning = false; // true if the device is running
public DPWSimDevice(String name,
String portType,
String manufacturer,
String namespace,
String httpBindIP,
int portDevice,
int portService,
String iconPath) {
super();
device = new GenericDevice(name, portType, manufacturer, namespace, httpBindIP, portDevice, portService);
ImageIcon icon = SwingUtilities.createImageIcon(iconPath);
if (icon == null) icon = SwingUtilities.createDefaultDeviceIcon();
this.setIcon(icon);
this.setHorizontalAlignment(JLabel.CENTER);
}
public List<String> getOperationNames(){
List<String> result = new ArrayList<>();
Iterator<GenericOperation> itr = ops.iterator();
while (itr.hasNext()){
GenericOperation op = itr.next();
result.add(op.getName());
}
return result;
}
public List<String> getEventNames(){
List<String> result = new ArrayList<>();
Iterator<EventProvider> itr = evs.iterator();
while (itr.hasNext()){
EventProvider ev = itr.next();
result.add(ev.getEvent().getName());
}
return result;
}
public void addOperation(GenericOperation op) {
device.addOperation(op);
ops.add(op);
}
public void addEvent(String eventName, String eventMsg, int eventFreq) {
device.addEvent(eventName);
GenericEvent evtSource = (GenericEvent) device.getEventSource(eventName);
EventProvider evtProvider = new EventProvider(evtSource, eventFreq, eventMsg);
evs.add(evtProvider);
}
public String toString(){
return null;
}
public GenericDevice getDevice() {
return device;
}
public void addInfo(String string) {
}
public List<GenericOperation> getOps() {
return ops;
}
public void setOps(List<GenericOperation> ops) {
this.ops = ops;
}
public List<EventProvider> getEvs() {
return evs;
}
public void setEvs(List<EventProvider> evs) {
this.evs = evs;
}
public void setDevice(GenericDevice device) {
this.device = device;
}
}