Hi Kevin,

On Fri, Aug 19, 2016 at 11:14 PM, Kevin Meyer <[email protected]> wrote:

> Hi Alexander,
>
> I thought the trick here was to register a new ScalarPanelAbstract that
> would pick up the URL and render it as a click-able link.
>
> In my testing, I have been able to register my
> "isis.example.UrlPanelFactory", which is just a String renderer (copied
> from ShortPanel).
>
> However, I have reached my limit. I can parse the text value, detect that
> it is a URL, but now I can't figure out how to create the matching Wicket
> HTML and Java to populate a hyperlink!
>
> I was experimenting with the HTML:
>
>                 <wicket:panel>
>                         <div class="shortPanel
> scalarNameAndValueComponentType">
>                                 <label for="scalarValue"
> wicket:id="scalarIfRegular">
>                                 <span wicket:id="scalarName"
> class="scalarName">[Label text]</span>
>                                 <span class="scalarValue">
>                                         <input type="text"
> name="scalarValue" wicket:id="scalarValue" />
>                                         <span wicket:id="feedback"></span>
>                                 </span>
>                                 </label>
>                                 <input type="text"
> wicket:id="scalarIfCompact"></input>
>

This should not be <input>.
"scalarIfCompact" is used for the "view" mode, "scalarIfRegular" for the
"edit" mode.
I.e. in edit mode you have to use <input> to change the url, in view mode
you have to use <a> to be able to click it.


> <!--
>                         <span wicket:id="scalarUrl">
>                                         <a href='a'
> wicket:id="scalarUrl"><input type="text"
> wicket:id="scalarUrl"></input></a>
>

Remove <input> here too.


>                                 </span>
> -->
>                         </div>
>                 </wicket:panel>
>
> But I don't know how to update the Java:
> public class UrlPanel extends ScalarPanelAbstract {
> ...
> // How to manipulate the Wicket component, once I have my URL-containing
> string.
>

You need to extend #getLabelForCompact() and #getComponentForRegular() (
https://github.com/apache/isis/blob/501e890f90d535df43d73a90e14295fadc9f9b64/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java#L171-L177
)
For the link (<a wicket:id="scalarUrl">) you can use Wicket's ExternalLink
component.
For <span wicket:id="scalarUrl"> use WebMarkupContainer, if you really need
it to be Wicket component. Otherwise just remove wicket:id from it.

Try it and let me know if you face any problems!

> ...
> }
>
>
> Maybe someone with better Wicket foo can provide some advice...
>
> Cheers,
> Kevin
>
>
> On Fri, August 19, 2016 17:35, Alexander Zerbe wrote:
> >
>
> > Hellp Joerg,
> >
> >
> > thanks for  the reply, but  like I said: Creation of a action, that
> > returns a URL and therefore executes a redirect is not a problem.
> >
> > Maybe I should make a feature request for wicked out of my question.
> >
> >
> > "Please render properties of type URL (Java.lang) as clickable links."
> >
> >
> > I was just looking for a possible solution for that case. :-)
> >
> >
> > Best regards
> >
> >
> > Rade, Joerg / Kuehne + Nagel / Ham GI-DP <[email protected]>
> > writes:
> >
> >
> >> Hi Alexander,
> >>
> >>
> >> I use the following:
> >>
> >>
> >> @ActionLayout(cssClassFa = "spinner")
> >> public URL openURL(final RuntimeEnvironment rte) throws
> >> MalformedURLException {
> >> URL url = null;
> >> try { url = new URL(rte.getUri()); } catch (Exception e) {
> >> messageService.raiseError("URL could not be opened"); }
> >> return url; }
> >>
> >>
> >> where RuntimeEnvironment#getUri() is:
> >>
> >> public String getUri() { return "http://"; + getHost().title() + ":" +
> >> getPort() + getPath(); }
> >>
> >>
> >> So the URL is not a property - it's constructed from strings.
> >>
> >>
> >> HTH -j
> >> -----Ursprüngliche Nachricht-----
> >> Von: Alexander Zerbe [mailto:[email protected]]
> >> Gesendet: Donnerstag, 18. August 2016 11:51
> >> An: [email protected]
> >> Betreff: Re: URLs as property.
> >>
> >>
> >>
> >> Hello Sander,
> >>
> >>
> >> thanks for your reply, but no that was not what I ment. I have a domain
> >> entity that has a URL as a property (where it is accessible/stored or
> >> where it 'lives').
> >>
> >> I'm searching for the best way to make this URL accessible (clickable).
> >>
> >>
> >> For example - I want to display all entities and I only want their name
> >> and URL, but the URL gets rendered as a string. So you must copy this
> >> string, open a new browser tab, insert it and open the URL by hand.
> >>
> >> In the future I will just create a frontend for this, but right now I
> >> would like to know if its possible to render every string that begins
> >> with 'http(s)' as a link.
> >>
> >> Best regards.
> >>
> >>
> >> Sander Ginn <[email protected]> writes:
> >>
> >>
> >>> Hi Alexander,
> >>>
> >>>
> >>> I'm not completely sure if I understand your question correctly, but
> >>> I think this is the answer:
> >>> Each item in a collection has an icon associated with it in the
> >>> leftmost column of the table. This icon is clickable and will
> >>> redirect you to the specific object. An example with the icon marked
> >>> with a red circle is attached.
> >>>
> >>> Kind regards,
> >>> Sander Ginn
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>> On 12 Aug 2016, at 11:56, Alexander Zerbe
> >>>> <[email protected]> wrote:
> >>>>
> >>>>
> >>>> Hi Everyone,
> >>>>
> >>>>
> >>>> I have a (hopefully) simple problem.
> >>>> A domain entity has a URL as property - I'm searching for a way too
> >>>> make those URLs clickable when displayed in a collection.
> >>>>
> >>>> For example:
> >>>> I want to list a subset of those entitys and from there I want the
> >>>> possibility to click the link and get redirected.
> >>>>
> >>>> Returning a URL from an action works (but only for http(s) URLs,
> >>>> not for file://), but thats not what I want.
> >>>>
> >>>> The only solution I see (so far), is too create a seperate wicket
> >>>> page with mountPage().
> >>>>
> >>>> It would also be okay too just have the name of the object and if I
> >>>>  click it, I get redirected immediatly.
> >>>>
> >>>>
> >>>> I'm up for any suggestions.
> >>>>
> >>>>
> >>>>
> >>>> Best regards
> >>>>
> >>
> >>
> >> Kühne + Nagel (AG & Co.) KG
> >> Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE
> >> 812773878.
> >> Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Yngve Ruud (Vors.), Martin
> >> Brinkmann, Matthias Heimbach, Jan-Hendrik Köstergarten, Nicholas Minde,
> >> Michael Nebel, Lars Wedel.
> >> Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform:
> >> Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745,
> >> Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt.
> >> Geschäftsleitung Region Westeuropa: Yngve Ruud (Vors.), Diederick de
> >> Vroet, Dominic Edmonds, Thierry Held, Uwe Hött, Richard Huhn, Björn
> >> Johansson, Holger Ketz, Jan Kunze.
> >>
> >>
> >> Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen
> >> Spediteurbedingungen 2016 (ADSp 2016). Die ADSp 2016 beschränken in
> >> Ziffer 23 die gesetzliche Haftung für Güterschäden in Höhe von 8,33
> >> SZR/kg je Schadenfall bzw. je Schadenereignis auf 1 Million bzw. 2
> >> Millionen Euro oder 2 SZR/kg, je nachdem, welcher Betrag höher ist, und
> >> bei multimodalen Transporten unter Einschluss einer Seebeförderung
> >> generell auf 2 SZR/kg. Den vollständigen Text der ADSp 2016 übersenden
> >> wir Ihnen gerne auf Anfrage und können Sie auch unter
> >> http://www.kuehne-nagel.com einsehen.
> >>
> >
> >
>
>
>

Reply via email to