GUI2 Add links to GUI2 when created dynamically
Change-Id: Ibfa7ae0fa9b02fd6e1b40b9f201ff002c19591a9
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java
index 4fe24b6..c8a9e05 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiRegion.java
@@ -36,7 +36,6 @@
* Represents a region.
*/
public class UiRegion extends UiNode {
-
public static final String NULL_NAME = "(root)";
private static final String NO_NAME = "???";
private static final String MEMO_ADDED = "added";
@@ -373,6 +372,14 @@
}
}
+ public void newDeviceAdded(DeviceId deviceId) {
+ deviceIds.add(deviceId);
+ }
+
+ public void deviceRemoved(DeviceId deviceId) {
+ deviceIds.remove(deviceId);
+ }
+
private boolean isDeviceRelevant(DeviceId deviceId) {
return deviceIds.contains(deviceId);
}
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java
index 3d164f5..363c4b5 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/UiTopoSession.java
@@ -16,6 +16,7 @@
package org.onosproject.ui.impl.topo;
+import org.onosproject.net.DeviceId;
import org.onosproject.net.region.RegionId;
import org.onosproject.ui.UiTopoLayoutService;
import org.onosproject.ui.impl.UiWebSocket;
@@ -140,6 +141,17 @@
@Override
public void event(UiModelEvent event) {
+ // To ensure link can be created devices have to be added to the list as
+ // they are created
+ if (event.type() == UiModelEvent.Type.DEVICE_ADDED_OR_UPDATED &&
+ event.memo() == "added") {
+ UiRegion uiRegion = sharedModel.getRegion(currentLayout.regionId());
+ uiRegion.newDeviceAdded(DeviceId.deviceId(event.subject().idAsString()));
+ } else if (event.type() == UiModelEvent.Type.DEVICE_REMOVED) {
+ UiRegion uiRegion = sharedModel.getRegion(currentLayout.regionId());
+ uiRegion.deviceRemoved(DeviceId.deviceId(event.subject().idAsString()));
+ }
+
webSocket.sendMessage(TOPO2_UI_MODEL_EVENT, t2json.jsonEvent(event));
}
diff --git a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/models/force-directed-graph.ts b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/models/force-directed-graph.ts
index b4de906..312b69b 100644
--- a/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/models/force-directed-graph.ts
+++ b/web/gui2-topo-lib/projects/gui2-topo-lib/src/lib/layer/forcesvg/models/force-directed-graph.ts
@@ -36,7 +36,7 @@
// note: key is link.type
direct: 100,
optical: 120,
- UiEdgeLink: 100,
+ UiEdgeLink: 3,
_def_: 50,
};