* @throws org.jboss.dashboard.ui.taglib.formatter.FormatterException
* in case of an unexpected exception.
*/
public void service(HttpServletRequest request, HttpServletResponse response) throws FormatterException {
Panel panel = (Panel) getParameter("panel");
PanelSession status = SessionManager.getPanelSession(panel);
SectionRegion sectionRegion = panel.getSection().getSectionRegion(panel.getRegion().getId());
boolean columnRegion = panel.getRegion().isColumnRegion();
WorkspaceImpl workspace = NavigationManager.lookup().getCurrentWorkspace();
boolean userIsAdmin = false;
if (workspace != null) {
WorkspacePermission permToCheck = WorkspacePermission.newInstance(workspace, WorkspacePermission.ACTION_ADMIN);
userIsAdmin = UserStatus.lookup().hasPermission(permToCheck);
}
if (!userIsAdmin) return;
PanelPermission editPanelPerm = PanelPermission.newInstance(panel, PanelPermission.ACTION_EDIT);
boolean userCanEditPanel = UserStatus.lookup().hasPermission(editPanelPerm);
renderFragment("movePanel");
setAttribute("cursorStyle", "move");
setAttribute("title", StringEscapeUtils.escapeHtml((String) LocaleManager.lookup().localize(panel.getTitle())));
renderFragment("menuLink");
renderFragment("menuStart");
setAttribute("title", LocalizeTag.getLocalizedValue(panel.getTitle(), getLang(), true));
renderFragment("menuTitle");
//Invalidate cache button.
if (panel.getCacheTime() > 0)
renderMenuOption("ui.panel.refresh", getPanelActionLink(request, response, panel, "_invalidate-cache"), refreshIco, "R", panel.getCacheTime() > 0);
if (status.isShowMode()) {
boolean isEditModeEnabled = !status.isEditMode() && panel.supportsEditMode() && userCanEditPanel;
//Edit button.
if (isEditModeEnabled) renderMenuOption("ui.panel.editMode", getPanelActionLink(request, response, panel, "_edit-mode"), editModeIco, "L", isEditModeEnabled);
} else {
//Show mode.
renderMenuOption("ui.panel.showMode", getPanelActionLink(request, response, panel, "_show-mode"), showModeIco, "S", !status.isShowMode());
}
//Properties mode
renderMenuOption("ui.panel.editProperties", getPanelActionLink(request, response, panel, "_start-config"), propertiesModeIco, "P", true);
//Close button
renderFragment("menuSeparator");
renderMenuOption("ui.panel.close", getPanelActionLink(request, response, panel, "_close"), eraseIco, "D", true, false);
//Help mode
renderMenuOption("ui.panel.helpMode", getPanelActionLink(request, response, panel, "_help-mode"), helpModeIco, "?", !status.isHelpMode() && panel.supportsHelpMode());
setAttribute("imageKey", closeIco);
renderFragment("menuEnd");
}