private static void getLayers(ClientLayerTreeNodeInfo node, List<ClientLayerInfo> layers) { if (node.getLayers() != null) { layers.addAll(node.getLayers()); } if (node.getTreeNodes() != null) { for (ClientLayerTreeNodeInfo innernode : node.getTreeNodes()) { getLayers(innernode, layers); } } }
public static ClientLayerTreeNodeInfo getParent(ClientLayerInfo layer, ClientLayerTreeNodeInfo node) { if (node.getLayers().contains(layer)) { return node; } else { for (ClientLayerTreeNodeInfo tn : node.getTreeNodes()) { ClientLayerTreeNodeInfo parentNode = getParent(layer, tn); if (parentNode != null) { return parentNode; } } } return null; }
private static boolean check(ClientLayerTreeNodeInfo node, String layerId) { List<ClientLayerInfo> layers = node.getLayers(); if (layers != null) { for (ClientLayerInfo layer : layers) { if (layer.getId().equals(layerId)) { return true; } } } if (node.getTreeNodes() != null) { for (ClientLayerTreeNodeInfo innernode : node.getTreeNodes()) { if (check(innernode, layerId)) { return true; } } } return false; }
private static void remove(ClientLayerTreeNodeInfo node, ClientLayerInfo layer) { if (node.getLayers() != null) { ClientLayerInfo toRemove = null; for (ClientLayerInfo l : node.getLayers()) { if (l.getId().equals(layer.getId())) { toRemove = l; break; } } if (null != toRemove) { node.getLayers().remove(toRemove); return; } } if (node.getTreeNodes() != null) { for (ClientLayerTreeNodeInfo innernode : node.getTreeNodes()) { remove(innernode, layer); } } }
private static boolean checkVisibility(ClientLayerTreeNodeInfo node, String layerId) { List<ClientLayerInfo> layers = node.getLayers(); if (layers != null) { for (ClientLayerInfo layer : layers) { if (layer.getId().equals(layerId) && layer.isVisible()) { return true; } } } if (node.getTreeNodes() != null) { for (ClientLayerTreeNodeInfo innernode : node.getTreeNodes()) { if (checkVisibility(innernode, layerId)) { return true; } } } return false; }