This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch ISIS-2222 in repository https://gitbox.apache.org/repos/asf/isis.git
commit 0b4e0bc9adaf21f151ab625a0f3b421036b0952c Author: danhaywood <[email protected]> AuthorDate: Sat Aug 15 17:57:02 2020 +0100 ISIS-2222: wip adds wicket panel to render InteractionDto, CommandDto, ChangesDto. --- .../ui/wkt/IsisModuleValAsciidocUiWkt.java | 3 ++ .../AsciiDocForXmlComponentWkt.java} | 38 ++++++++++----- .../wkt/components/AsciiDocPanelFactoriesWkt.java | 5 +- .../schema/chg/v2/ChangesDtoComponentWkt.java} | 33 ++++++++----- .../chg/v2/ChangesDtoPanelFactoriesWkt.java} | 33 +++---------- .../schema/cmd/v2/CommandDtoComponentWkt.java} | 33 ++++++++----- .../cmd/v2/CommandDtoPanelFactoriesWkt.java} | 33 +++---------- .../schema/ixn/v2/InteractionDtoComponentWkt.java | 56 ++++++++++++++++++++++ .../ixn/v2/InteractionDtoPanelFactoriesWkt.java} | 31 +++--------- .../components/scalars/markup/MarkupComponent.java | 16 +++++-- 10 files changed, 161 insertions(+), 120 deletions(-) diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java index 0d09de0..dc728d6 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java @@ -23,12 +23,15 @@ import org.springframework.context.annotation.Import; import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib; import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt; +import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2.InteractionDtoPanelFactoriesWkt; @Configuration @Import({ IsisModuleValAsciidocApplib.class, AsciiDocPanelFactoriesWkt.Parented.class, AsciiDocPanelFactoriesWkt.Standalone.class, + InteractionDtoPanelFactoriesWkt.Parented.class, + InteractionDtoPanelFactoriesWkt.Standalone.class, }) public class IsisModuleValAsciidocUiWkt { } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocForXmlComponentWkt.java similarity index 50% copy from valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java copy to valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocForXmlComponentWkt.java index 0d09de0..1119309 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocForXmlComponentWkt.java @@ -16,19 +16,33 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.isis.valuetypes.asciidoc.ui.wkt; +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; +import org.apache.wicket.model.IModel; -import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib; -import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt; +import org.apache.isis.applib.util.schema.CommandDtoUtils; +import org.apache.isis.schema.cmd.v2.CommandDto; +import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc; + +import lombok.val; + +public class AsciiDocForXmlComponentWkt extends AsciiDocComponentWkt { + + private static final long serialVersionUID = 1L; + + public AsciiDocForXmlComponentWkt(String id, IModel<?> model) { + super(id, model); + setEnabled(false); + } + + /** + * for convenience of subtypes. + * @param xml + * @return + */ + protected final String asHtml(String xml) { + val adoc = "[source,xml]\n----\n" + xml + "\n----"; + return AsciiDoc.valueOfAdoc(adoc).asHtml(); + } -@Configuration -@Import({ - IsisModuleValAsciidocApplib.class, - AsciiDocPanelFactoriesWkt.Parented.class, - AsciiDocPanelFactoriesWkt.Standalone.class, -}) -public class IsisModuleValAsciidocUiWkt { } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java index 1a58f4a..fae7df5 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java @@ -69,10 +69,7 @@ public class AsciiDocPanelFactoriesWkt { @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - return markupComponent; - }; + return AsciiDocComponentWkt::new; } } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/chg/v2/ChangesDtoComponentWkt.java similarity index 56% copy from valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java copy to valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/chg/v2/ChangesDtoComponentWkt.java index 0d09de0..02d2f46 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/chg/v2/ChangesDtoComponentWkt.java @@ -16,19 +16,28 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.isis.valuetypes.asciidoc.ui.wkt; +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; +import org.apache.wicket.model.IModel; -import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib; -import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt; +import org.apache.isis.applib.util.schema.ChangesDtoUtils; +import org.apache.isis.schema.chg.v2.ChangesDto; +import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocForXmlComponentWkt; + +public class ChangesDtoComponentWkt extends AsciiDocForXmlComponentWkt { + + private static final long serialVersionUID = 1L; + + public ChangesDtoComponentWkt(String id, IModel<?> model) { + super(id, model); + } + + @Override + protected String asHtml(Object value) { + if(value instanceof ChangesDto) { + return asHtml(ChangesDtoUtils.toXml((ChangesDto) value)); + } + return super.asHtml(value); + } -@Configuration -@Import({ - IsisModuleValAsciidocApplib.class, - AsciiDocPanelFactoriesWkt.Parented.class, - AsciiDocPanelFactoriesWkt.Standalone.class, -}) -public class IsisModuleValAsciidocUiWkt { } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/chg/v2/ChangesDtoPanelFactoriesWkt.java similarity index 65% copy from valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java copy to valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/chg/v2/ChangesDtoPanelFactoriesWkt.java index 1a58f4a..200f797 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/chg/v2/ChangesDtoPanelFactoriesWkt.java @@ -17,23 +17,15 @@ * under the License. */ -package org.apache.isis.valuetypes.asciidoc.ui.wkt.components; +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.chg.v2; import org.springframework.stereotype.Component; -import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc; +import org.apache.isis.schema.chg.v2.ChangesDto; import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponentFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories; -import lombok.val; - -/** - * @implNote Almost a copy of {@code Parented} and {@code Standalone} in - * {@link MarkupPanelFactories}, but specific to - * the {@link AsciiDoc} value-type which requires client-side java-script to be - * executed to enable syntax highlighting - */ -public class AsciiDocPanelFactoriesWkt { +public class ChangesDtoPanelFactoriesWkt { // -- PARENTED @@ -42,19 +34,13 @@ public class AsciiDocPanelFactoriesWkt { private static final long serialVersionUID = 1L; public Parented() { - super(AsciiDoc.class); + super(ChangesDto.class); } @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - markupComponent.setEnabled(false); - return markupComponent; - }; - + return ChangesDtoComponentWkt::new; } - } // -- STANDALONE @@ -64,18 +50,13 @@ public class AsciiDocPanelFactoriesWkt { private static final long serialVersionUID = 1L; public Standalone() { - super(AsciiDoc.class); + super(ChangesDto.class); } @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - return markupComponent; - }; + return ChangesDtoComponentWkt::new; } - } - } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/cmd/v2/CommandDtoComponentWkt.java similarity index 56% copy from valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java copy to valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/cmd/v2/CommandDtoComponentWkt.java index 0d09de0..f8df038 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/IsisModuleValAsciidocUiWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/cmd/v2/CommandDtoComponentWkt.java @@ -16,19 +16,28 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.isis.valuetypes.asciidoc.ui.wkt; +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; +import org.apache.wicket.model.IModel; -import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib; -import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocPanelFactoriesWkt; +import org.apache.isis.applib.util.schema.CommandDtoUtils; +import org.apache.isis.schema.cmd.v2.CommandDto; +import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocForXmlComponentWkt; + +public class CommandDtoComponentWkt extends AsciiDocForXmlComponentWkt { + + private static final long serialVersionUID = 1L; + + public CommandDtoComponentWkt(String id, IModel<?> model) { + super(id, model); + } + + @Override + protected String asHtml(Object value) { + if(value instanceof CommandDto) { + return asHtml(CommandDtoUtils.toXml((CommandDto) value)); + } + return super.asHtml(value); + } -@Configuration -@Import({ - IsisModuleValAsciidocApplib.class, - AsciiDocPanelFactoriesWkt.Parented.class, - AsciiDocPanelFactoriesWkt.Standalone.class, -}) -public class IsisModuleValAsciidocUiWkt { } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/cmd/v2/CommandDtoPanelFactoriesWkt.java similarity index 65% copy from valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java copy to valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/cmd/v2/CommandDtoPanelFactoriesWkt.java index 1a58f4a..946d492 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/cmd/v2/CommandDtoPanelFactoriesWkt.java @@ -17,23 +17,15 @@ * under the License. */ -package org.apache.isis.valuetypes.asciidoc.ui.wkt.components; +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.cmd.v2; import org.springframework.stereotype.Component; -import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc; +import org.apache.isis.schema.cmd.v2.CommandDto; import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponentFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories; -import lombok.val; - -/** - * @implNote Almost a copy of {@code Parented} and {@code Standalone} in - * {@link MarkupPanelFactories}, but specific to - * the {@link AsciiDoc} value-type which requires client-side java-script to be - * executed to enable syntax highlighting - */ -public class AsciiDocPanelFactoriesWkt { +public class CommandDtoPanelFactoriesWkt { // -- PARENTED @@ -42,19 +34,13 @@ public class AsciiDocPanelFactoriesWkt { private static final long serialVersionUID = 1L; public Parented() { - super(AsciiDoc.class); + super(CommandDto.class); } @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - markupComponent.setEnabled(false); - return markupComponent; - }; - + return CommandDtoComponentWkt::new; } - } // -- STANDALONE @@ -64,18 +50,13 @@ public class AsciiDocPanelFactoriesWkt { private static final long serialVersionUID = 1L; public Standalone() { - super(AsciiDoc.class); + super(CommandDto.class); } @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - return markupComponent; - }; + return CommandDtoComponentWkt::new; } - } - } diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/ixn/v2/InteractionDtoComponentWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/ixn/v2/InteractionDtoComponentWkt.java new file mode 100644 index 0000000..39f4f83 --- /dev/null +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/ixn/v2/InteractionDtoComponentWkt.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2; + +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.MarkupStream; +import org.apache.wicket.markup.head.CssHeaderItem; +import org.apache.wicket.markup.head.IHeaderResponse; +import org.apache.wicket.markup.head.JavaScriptHeaderItem; +import org.apache.wicket.model.IModel; +import org.apache.wicket.request.resource.ResourceReference; +import org.asciidoctor.converter.Converter; + +import org.apache.isis.applib.util.schema.InteractionDtoUtils; +import org.apache.isis.schema.ixn.v2.InteractionDto; +import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc; +import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.AsciiDocForXmlComponentWkt; +import org.apache.isis.valuetypes.asciidoc.ui.wkt.components.prism.PrismResources; +import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponent; +import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponent_reloadJs; + +import lombok.val; + +public class InteractionDtoComponentWkt extends AsciiDocForXmlComponentWkt { + + private static final long serialVersionUID = 1L; + + public InteractionDtoComponentWkt(String id, IModel<?> model) { + super(id, model); + } + + @Override + protected String asHtml(Object value) { + if(value instanceof InteractionDto) { + return asHtml(InteractionDtoUtils.toXml((InteractionDto) value)); + } + return super.asHtml(value); + } + +} diff --git a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/ixn/v2/InteractionDtoPanelFactoriesWkt.java similarity index 65% copy from valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java copy to valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/ixn/v2/InteractionDtoPanelFactoriesWkt.java index 1a58f4a..a1ddb3e 100644 --- a/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/AsciiDocPanelFactoriesWkt.java +++ b/valuetypes/asciidoc/ui/wicket/src/main/java/org/apache/isis/valuetypes/asciidoc/ui/wkt/components/schema/ixn/v2/InteractionDtoPanelFactoriesWkt.java @@ -17,23 +17,15 @@ * under the License. */ -package org.apache.isis.valuetypes.asciidoc.ui.wkt.components; +package org.apache.isis.valuetypes.asciidoc.ui.wkt.components.schema.ixn.v2; import org.springframework.stereotype.Component; -import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc; +import org.apache.isis.schema.ixn.v2.InteractionDto; import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupComponentFactory; import org.apache.isis.viewer.wicket.ui.components.scalars.markup.MarkupPanelFactories; -import lombok.val; - -/** - * @implNote Almost a copy of {@code Parented} and {@code Standalone} in - * {@link MarkupPanelFactories}, but specific to - * the {@link AsciiDoc} value-type which requires client-side java-script to be - * executed to enable syntax highlighting - */ -public class AsciiDocPanelFactoriesWkt { +public class InteractionDtoPanelFactoriesWkt { // -- PARENTED @@ -42,16 +34,12 @@ public class AsciiDocPanelFactoriesWkt { private static final long serialVersionUID = 1L; public Parented() { - super(AsciiDoc.class); + super(InteractionDto.class); } @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - markupComponent.setEnabled(false); - return markupComponent; - }; + return InteractionDtoComponentWkt::new; } @@ -64,18 +52,13 @@ public class AsciiDocPanelFactoriesWkt { private static final long serialVersionUID = 1L; public Standalone() { - super(AsciiDoc.class); + super(InteractionDto.class); } @Override protected MarkupComponentFactory getMarkupComponentFactory() { - return (id, model) -> { - val markupComponent = new AsciiDocComponentWkt(id, model); - return markupComponent; - }; + return InteractionDtoComponentWkt::new; } - } - } diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java index 9d1b4d5..84c2d96 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java +++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/markup/MarkupComponent.java @@ -52,7 +52,7 @@ public class MarkupComponent extends WebComponent { // -- HELPER - protected static CharSequence extractHtmlOrElse(Object modelObject, final String fallback) { + protected CharSequence extractHtmlOrElse(Object modelObject, final String fallback) { if(modelObject==null) { return fallback; @@ -67,15 +67,23 @@ public class MarkupComponent extends WebComponent { final Object value = adapter.getPojo(); - if(!(value instanceof HasHtml)) - return fallback; + val asHtml = asHtml(value); + if(asHtml != null) { + return asHtml; + } - return ((HasHtml)value).asHtml(); + return fallback; } return modelObject.toString(); } + protected String asHtml(Object value) { + if (value instanceof HasHtml) { + return ((HasHtml)value).asHtml(); + } + return null; + } }
