|
@@ -120,7 +120,7 @@ public class ConnectionCreationPanel extends JScrollPane {
|
|
|
public ConnectionCreationPanel(Collection<Port> ports, Link l,
|
|
|
Controller controller) {
|
|
|
this.controller = controller;
|
|
|
- connection = new ConnectionImplementation(l, new SimpleProtocol());
|
|
|
+ connection = new ConnectionImplementation(l, new MQTT_protocol());
|
|
|
this.ports = new Port[ports.size()];
|
|
|
int i = 0;
|
|
|
for (Port d : ports) {
|
|
@@ -349,9 +349,36 @@ public class ConnectionCreationPanel extends JScrollPane {
|
|
|
|
|
|
@Override
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
- /*
|
|
|
- * if(!edit){ controller.addLink(connection); }
|
|
|
- */
|
|
|
+
|
|
|
+ if(!edit){
|
|
|
+ if(!connection.getLink().getConnections().contains(connection))
|
|
|
+ connection.getLink().addConnection(connection);
|
|
|
+ for(int i = 0; i<ports.length; i++){
|
|
|
+ if(!ports[i].getOwner().getLinks().contains(connection.getLink()))
|
|
|
+ ports[i].getOwner().addLink(connection.getLink());
|
|
|
+ if(connection.getProtocol().getDevices().contains(ports[i])){
|
|
|
+ if(!connection.getParticipants().contains(ports[i]))
|
|
|
+ connection.addSmartDevice(ports[i]);
|
|
|
+ if(ports[i].getConnection()!=connection)
|
|
|
+ ports[i].setConnection(connection);
|
|
|
+ if(!ports[i].getOwner().getPorts().contains(ports[i]))
|
|
|
+ ports[i].getOwner().addPort(ports[i]);
|
|
|
+ } else {
|
|
|
+ if(connection.getParticipants().contains(ports[i]))
|
|
|
+ connection.removeSmartDevice(ports[i]);
|
|
|
+ if(ports[i].getConnection()!=null)
|
|
|
+ ports[i].setConnection(null);
|
|
|
+ if(ports[i].getOwner().getPorts().contains(ports[i]))
|
|
|
+ ports[i].getOwner().removePort(ports[i]);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!controller.getLinks().contains(connection.getLink()))
|
|
|
+ controller.addLink(connection.getLink());
|
|
|
+ if(!controller.getConnections().contains(connection))
|
|
|
+ controller.addConnection(connection);
|
|
|
+ }
|
|
|
+
|
|
|
connection.setName(tfName.getText());
|
|
|
content.setVisible(false);
|
|
|
setVisible(false);
|
|
@@ -359,6 +386,7 @@ public class ConnectionCreationPanel extends JScrollPane {
|
|
|
frame.setVisible(false);
|
|
|
frame.dispose();
|
|
|
}
|
|
|
+ controller.notifyObservers();
|
|
|
}
|
|
|
});
|
|
|
|