use of org.onosproject.ui.model.topo.UiTopoLayout in project onos by opennetworkinglab.
the class ModelCache method fixupContainmentHierarchy.
private void fixupContainmentHierarchy(UiRegion region) {
UiTopoLayoutService ls = services.layout();
RegionId regionId = region.id();
UiTopoLayout layout = ls.getLayout(regionId);
if (layout == null) {
// no layout backed by this region
log.warn("No layout backed by region {}", regionId);
return;
}
UiTopoLayoutId layoutId = layout.id();
if (!layout.isRoot()) {
UiTopoLayoutId parentId = layout.parent();
UiTopoLayout parentLayout = ls.getLayout(parentId);
RegionId parentRegionId = parentLayout.regionId();
region.setParent(parentRegionId);
}
Set<UiTopoLayout> kids = ls.getChildren(layoutId);
Set<RegionId> kidRegionIds = new HashSet<>(kids.size());
kids.forEach(k -> kidRegionIds.add(k.regionId()));
region.setChildren(kidRegionIds);
}
use of org.onosproject.ui.model.topo.UiTopoLayout in project onos by opennetworkinglab.
the class LayoutAddCommand method doExecute.
@Override
protected void doExecute() {
UiTopoLayoutService service = get(UiTopoLayoutService.class);
RegionService regionService = get(RegionService.class);
UiTopoLayout layout;
if (ROOT.equals(id)) {
layout = service.getRootLayout();
setAppropriateBackground(layout);
setZoomParameters(layout);
return;
}
// Otherwise, it is a user-defined layout...
Region region = nullToken(regionId) ? null : regionService.getRegion(regionId(regionId));
UiTopoLayoutId pid = nullToken(parentId) ? UiTopoLayoutId.DEFAULT_ID : layoutId(parentId);
layout = new UiTopoLayout(layoutId(id)).region(region).parent(pid);
setAppropriateBackground(layout);
setZoomParameters(layout);
service.addLayout(layout);
}
Aggregations