Topo2: Refactored Maps and Sprites to be managed by a BackgroundService
Change-Id: I75965fc76734436ce0c68e06dd75663baa924287
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
index c26c6fd..f6d62d5 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
@@ -239,6 +239,20 @@
addZoomPan(result, layout.id());
}
+ private ObjectNode initialZoomForLayout(ObjectNode zoomPrefs, String id) {
+ ObjectNode zoomForLayout = defaultZoomForLayout();
+ zoomPrefs.set(id, zoomForLayout);
+ prefService.setPreference(userName, PKEY_TOPO_ZOOM, zoomPrefs);
+ return zoomPrefs;
+ }
+
+ private ObjectNode defaultZoomForLayout() {
+ return objectNode()
+ .put(ZOOM_SCALE, DEFAULT_SCALE)
+ .put(ZOOM_PAN_X, DEFAULT_PAN)
+ .put(ZOOM_PAN_Y, DEFAULT_PAN);
+ }
+
private void addZoomPan(ObjectNode result, UiTopoLayoutId layoutId) {
// need to look up topo_zoom settings from preferences service.
@@ -254,19 +268,16 @@
ObjectNode zoomPrefs = userPrefs.get(PKEY_TOPO_ZOOM);
if (zoomPrefs == null) {
- // no zoom prefs structure yet.. so initialize..
- ObjectNode zoomForLayout = objectNode()
- .put(ZOOM_SCALE, DEFAULT_SCALE)
- .put(ZOOM_PAN_X, DEFAULT_PAN)
- .put(ZOOM_PAN_Y, DEFAULT_PAN);
-
- zoomPrefs = objectNode();
- zoomPrefs.set(layoutId.id(), zoomForLayout);
-
- prefService.setPreference(userName, PKEY_TOPO_ZOOM, zoomPrefs);
+ zoomPrefs = initialZoomForLayout(objectNode(), layoutId.id());
}
+
ObjectNode zoomData = (ObjectNode) zoomPrefs.get(layoutId.id());
+ if (zoomData == null) {
+ zoomPrefs = initialZoomForLayout(zoomPrefs, layoutId.id());
+ zoomData = (ObjectNode) zoomPrefs.get(layoutId.id());
+ }
+
result.put("bgZoomScale", zoomData.get(ZOOM_SCALE).asText());
result.put("bgZoomPanX", zoomData.get(ZOOM_PAN_X).asText());
result.put("bgZoomPanY", zoomData.get(ZOOM_PAN_Y).asText());