}
protected void renderButtons(boolean administratorMode) {
UserStatus userStatus = UserStatus.lookup();
PanelSession status = SessionManager.getPanelSession(panel);
SectionRegion sectionRegion = panel.getSection().getSectionRegion(panel.getRegion().getId());
PanelPermission editPanelPerm = PanelPermission.newInstance(panel, PanelPermission.ACTION_EDIT);
PanelPermission minPanelPerm = PanelPermission.newInstance(panel, PanelPermission.ACTION_MINIMIZE);
PanelPermission maxPanelPerm = PanelPermission.newInstance(panel, PanelPermission.ACTION_MAXIMIZE);
boolean userCanEditPanel = userStatus.hasPermission(editPanelPerm);
boolean userCanMinimizePanel = userStatus.hasPermission(minPanelPerm);
boolean userCanMaximizePanel = userStatus.hasPermission(maxPanelPerm);
boolean columnRegion = panel.getRegion().isColumnRegion();
setAttribute("panelId", panel.getPanelId());
setAttribute("panel", panel);
renderFragment("beforePanelButtons");
//Invalidate cache button.
if (panel.getCacheTime() > 0) {
renderButtonOutput("ui.panel.refresh", getPanelActionLink("_invalidate-cache"), "REFRESH", "R");
}
//Arrow buttons.
if (administratorMode && !status.isMaximized()) {
if (!sectionRegion.isFirstPanelInRegion(panel) && !sectionRegion.isOnlyPanelInRegion(panel)) {
renderButtonOutput("ui.panel.moveBack", getPanelActionLink("_move-back"), columnRegion ? "UP" : "LEFT", columnRegion ? "^" : "<");
}
if (!sectionRegion.isLastPanelInRegion(panel) && !sectionRegion.isOnlyPanelInRegion(panel)) {
renderButtonOutput("ui.panel.moveForward", getPanelActionLink("_move-forward"), columnRegion ? "DOWN" : "RIGHT", columnRegion ? "v" : ">");
}
}
//Edit button.
if (!status.isEditMode() && panel.supportsEditMode() && userCanEditPanel) {