protected void renderPanel(Panel panel, boolean canEditPanel) {
    if (!isPanelOk(panel)) return;

    setAttribute("panel", panel);
    setAttribute("recommendedWidth", panelRecommendedWidth + "%");
    renderFragment("panelOutputStart");
    if (panel.isPaintTitle()
        || panel.getPanelSession().isMinimized()
        || (userAdmin)
        || (panel.getProvider().getDriver().supportsEditMode(panel) && canEditPanel)) {
      setAttribute("panel", panel);
      setAttribute("administratorMode", userAdmin);
      setAttribute(
          "panelTitle",
          StringEscapeUtils.ESCAPE_HTML4.translate(getLocalizedValue(panel.getTitle())));
      setAttribute("recommendedWidth", panelRecommendedWidth + "%");
      setAttribute("editMode", panel.getPanelSession().isEditMode());
      renderFragment("panelContentWithMenu");
    } else {
      setAttribute("panel", panel);
      setAttribute("recommendedWidth", panelRecommendedWidth + "%");
      renderFragment("panelContentWithoutMenu");
    }
    setAttribute("panel", panel);
    renderFragment("panelOutputEnd");
  }