private boolean writeHeader()

in core/src/main/java/org/apache/sling/cms/core/internal/filters/EditIncludeFilter.java [225:261]


    private boolean writeHeader(SlingHttpServletRequest request, PrintWriter writer, boolean includeEnd) {
        String editPath = null;
        Resource resource = request.getResource();

        EditableResource editableResource = new EditableResourceImpl(resource);
        Component component = editableResource.getComponent();
        if (component != null && !component.isType(CMSConstants.COMPONENT_TYPE_PAGE)) {
            editPath = component.getEditPath();
        }
        if (editPath == null) {
            editPath = "";
        }

        I18NDictionary resourceBundle = provider.getDictionary(request);

        if (StringUtils.isNotEmpty(editPath)) {
            includeEnd = true;
            writeEditorMarkup(resource, writer, resourceBundle, shouldWriteDropTarget(request));
        } else if (component != null && !component.isEditable()) {
            includeEnd = true;
            String title = StringUtils.isNotEmpty(component.getTitle()) ? component.getTitle()
                    : StringUtils.substringAfterLast(resource.getResourceType(), "/");
            title = resourceBundle.get(title);

            Map<String, Object> replacements = new HashMap<>();
            replacements.put("componentPath", component.getResource().getPath());
            replacements.put("editPath", editPath);
            replacements.put("reload", component.isReloadPage());
            replacements.put("resourceName", component.getResource().getName());
            replacements.put("resourcePath", resource.getPath());
            replacements.put("resourceType", resource.getResourceType());
            replacements.put("title", title);
            writeTemplate(writer, replacements, "header.html");
        }

        return includeEnd;
    }