package com.revolsys.swing.map.layer; import java.util.function.Function; import com.revolsys.swing.menu.MenuFactory; import com.revolsys.swing.menu.Menus; import com.revolsys.swing.tree.node.WebServiceConnectionTrees; import com.revolsys.webservice.WebServiceResource; public interface BaseMapLayer extends Layer { static <S extends WebServiceResource> void addNewLayerMenu(final MenuFactory tileInfoMenu, final Function<S, BaseMapLayer> factory) { Menus.addMenuItem(tileInfoMenu, "layer", "Add Base Map Layer", "map:add", (final S treeItem) -> { final Project project = Project.get(); if (project != null) { final BaseMapLayerGroup baseMaps = project.getBaseMapLayers(); if (baseMaps != null) { final BaseMapLayer layer = factory.apply(treeItem); layer.setVisible(true); baseMaps.addLayer(layer); } } }, false); Menus.addMenuItem(tileInfoMenu, "layer", "Add Layer", "map:add", (final S treeItem) -> { final LayerGroup layerGroup = WebServiceConnectionTrees.getLayerGroup(treeItem); if (layerGroup != null) { final BaseMapLayer layer = factory.apply(treeItem); layer.setVisible(true); layerGroup.addLayer(layer); } }, false); } }