public void service(HttpServletRequest request, HttpServletResponse response) throws FormatterException { renderFragment("outputStart"); renderFragment("workspacesSelect"); if (getNavigationManager().isAdminBarVisible()) try { Workspace currentWorkspace = getNavigationManager().getCurrentWorkspace(); BackOfficePermission createPerm = BackOfficePermission.newInstance(null, BackOfficePermission.ACTION_CREATE_WORKSPACE); WorkspacePermission editPerm = WorkspacePermission.newInstance(currentWorkspace, WorkspacePermission.ACTION_EDIT); WorkspacePermission deletePerm = WorkspacePermission.newInstance(currentWorkspace, WorkspacePermission.ACTION_DELETE); boolean canAddWorkspace = getUserStatus().hasPermission(createPerm); if (canAddWorkspace) { renderFragment("createNewButton"); } if (getUserStatus().hasPermission(editPerm)) { renderFragment("editButton"); } if (UIServices.lookup().getWorkspacesManager().getAvailableWorkspacesIds().size() > 1 && getUserStatus().hasPermission(deletePerm)) { renderFragment("deleteButton"); } if (canAddWorkspace) { renderFragment("duplicateButton"); } } catch (Exception e) { throw new FormatterException(e); } renderFragment("outputEnd"); }
protected List listChildren() { List children = new ArrayList(); PanelInstancesNode parent = (PanelInstancesNode) getParent(); final String language = LocaleManager.currentLang(); try { String workspaceId = parent.getHandler().getWorkspaceId(); WorkspaceImpl workspace = (WorkspaceImpl) UIServices.lookup().getWorkspacesManager().getWorkspace(workspaceId); PanelInstance[] instances = workspace.getPanelInstancesInGroup(providerId); if (instances != null) { TreeSet<PanelInstance> panelInstances = new TreeSet<PanelInstance>( new Comparator<PanelInstance>() { public int compare(PanelInstance p1, PanelInstance p2) { return p1.getTitle(language).compareToIgnoreCase(p2.getTitle(language)); } }); TreeSet<String> groups = new TreeSet<String>(); for (PanelInstance pi : instances) { String group = pi.getParameterValue(PanelInstance.PARAMETER_GROUP, language); if (group != null && !"".equals(group.trim())) { groups.add(group); } else { panelInstances.add(pi); } } for (String gr : groups) { children.add(getNewGroupNode(workspaceId, gr)); } for (PanelInstance pi : panelInstances) { children.add(getNewInstanceNode(pi)); } } } catch (Exception e) { log.error("Error: ", e); } return children; }
public WorkspacesManager getWorkspacesManager() { return UIServices.lookup().getWorkspacesManager(); }
protected String getPanelActionLink( HttpServletRequest request, HttpServletResponse response, Panel panel, String action) { URLMarkupGenerator markupGenerator = UIServices.lookup().getUrlMarkupGenerator(); return markupGenerator.getLinkToPanelAction(panel, action, true); }