package org.brixcms.plugin.usermgmt.role.admin;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import org.brixcms.auth.Action.Context;
import org.brixcms.plugin.jpa.web.admin.ManageEntityTabFactory;
import org.brixcms.plugin.usermgmt.role.Role;
import org.brixcms.plugin.usermgmt.role.RolePlugin;
import org.brixcms.web.tab.CachingAbstractTab;
import org.brixcms.web.tab.IBrixTab;
/**
* @author dan.simko@gmail.com
*/
public class ManageRoleTabFactory implements ManageEntityTabFactory<Role> {
@Override
public List<IBrixTab> getManageNodeTabs(IModel<Role> model) {
return getTabs(model);
}
@SuppressWarnings("serial")
private static List<IBrixTab> getTabs(final IModel<Role> model) {
List<IBrixTab> tabs = new ArrayList<IBrixTab>();
tabs.add(new CachingAbstractTab(new ResourceModel("view", "View")) {
@Override
public Panel newPanel(String panelId) {
return new ViewTab(panelId, model);
}
@Override
public boolean isVisible() {
return RolePlugin.get().canViewEntity(model.getObject(), Context.ADMINISTRATION);
}
});
tabs.add(new CachingAbstractTab(new ResourceModel("permissions", "Permissions")) {
@Override
public Panel newPanel(String panelId) {
return new RolePermissionsTab(panelId, model);
}
});
return tabs;
}
}