package org.molgenis.ui;
import org.molgenis.security.core.MolgenisPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.IOException;
import static java.util.Objects.requireNonNull;
/**
* @deprecated use {@link org.molgenis.ui.menu.MenuMolgenisUi} instead
*/
@Deprecated
public class XmlMolgenisUi implements MolgenisUi
{
private final Molgenis molgenisUi;
private final MolgenisPermissionService molgenisPermissionService;
@Autowired
public XmlMolgenisUi(XmlMolgenisUiLoader xmlMolgenisUiLoader, MolgenisPermissionService molgenisPermissionService)
throws IOException
{
this.molgenisUi = requireNonNull(xmlMolgenisUiLoader).load();
this.molgenisPermissionService = requireNonNull(molgenisPermissionService);
}
@Override
public MolgenisUiMenu getMenu()
{
return new XmlMolgenisUiMenu(molgenisUi.getMenu(), molgenisPermissionService);
}
@Override
public MolgenisUiMenu getMenu(String menuId)
{
return getMenuRecursive(getMenu(), menuId);
}
private MolgenisUiMenu getMenuRecursive(MolgenisUiMenu menu, String menuId)
{
if (menu.getId().equals(menuId)) return menu;
for (MolgenisUiMenuItem menuItem : menu.getItems())
{
if (menuItem.getType() == MolgenisUiMenuItemType.MENU)
{
MolgenisUiMenu requestedMenu = getMenuRecursive((MolgenisUiMenu) menuItem, menuId);
if (requestedMenu != null) return requestedMenu;
}
}
return null;
}
}