Example usage for org.apache.wicket MarkupContainer getMarkup

List of usage examples for org.apache.wicket MarkupContainer getMarkup

Introduction

In this page you can find the example usage for org.apache.wicket MarkupContainer getMarkup.

Prototype

public IMarkupFragment getMarkup() 

Source Link

Document

Get the Markup associated with the Component.

Usage

From source file:org.opensingular.lib.wicket.util.bootstrap.layout.TemplatePanel.java

License:Apache License

@Override
protected IMarkupSourcingStrategy newMarkupSourcingStrategy() {
    return new PanelMarkupSourcingStrategy(false) {
        @Override/*from ww  w  .  ja v a2  s  . c o m*/
        public IMarkupFragment getMarkup(MarkupContainer parent, Component child) {
            // corrige o problema de encoding
            StringResourceStream stringResourceStream = new StringResourceStream(
                    "<wicket:panel>" + getTemplateFunction().apply(TemplatePanel.this) + "</wicket:panel>",
                    "text/html");
            stringResourceStream.setCharset(Charset.forName(
                    Optional.ofNullable(Application.get().getMarkupSettings().getDefaultMarkupEncoding())
                            .orElse(StandardCharsets.UTF_8.name())));

            MarkupParser markupParser = new MarkupParser(new MarkupResourceStream(stringResourceStream));
            markupParser.setWicketNamespace(MarkupParser.WICKET);
            Markup markup;
            try {
                markup = markupParser.parse();
            } catch (Exception e) {
                throw SingularUtil.propagate(e);
            }

            // If child == null, than return the markup fragment starting
            // with <wicket:panel>
            if (child == null) {
                return markup;
            }

            // Copiado da superclasse. buscando markup do child
            IMarkupFragment associatedMarkup = markup.find(child.getId());
            if (associatedMarkup != null) {
                return associatedMarkup;
            }
            associatedMarkup = searchMarkupInTransparentResolvers(parent, parent.getMarkup(), child);
            if (associatedMarkup != null) {
                return associatedMarkup;
            }
            return findMarkupInAssociatedFileHeader(parent, child);
        }

        @Override
        public void onComponentTagBody(Component component, MarkupStream markupStream, ComponentTag openTag) {
            TemplatePanel.this.onBeforeComponentTagBody(markupStream, openTag);
            super.onComponentTagBody(component, markupStream, openTag);
            TemplatePanel.this.onAfterComponentTagBody(markupStream, openTag);
        }
    };
}