Hi,
I tried implementing the IMarkupResourceStreamProvider in my web page:
    public IResourceStream getMarkupResourceStream(MarkupContainer
container,
            Class containerClass) {
        if (html != null) {
            StringResourceStream myhtml = new StringResourceStream(new
StringBuilder(html));
            MarkupResourceStream m = new MarkupResourceStream(myhtml);
            return m;
        } else {
            final DefaultMarkupResourceStreamProvider
markupResourceStreamProvider =
                    new DefaultMarkupResourceStreamProvider();
            return
markupResourceStreamProvider.getMarkupResourceStream(container,
                    containerClass);
        }
    }

(html is a class member that may or may not be available)

It did not work:
1. The Cache keeps the last html markup, so if I open this page once WITH
html != null I get what I want (but with the same problem. look at next
note). If then I open the page and the html  IS null, the cache returns the
earlier page. So this approach is no good.

2. In any case, HeaderContributers that are on components that in the page
are not added to the output markup.

Are the 2 lines:
            StringResourceStream myhtml = new StringResourceStream(new
StringBuilder(html));
            MarkupResourceStream m = new MarkupResourceStream(myhtml);
  The problem ?

Thanks

On Thu, May 8, 2008 at 6:41 AM, Igor Vaynberg <[EMAIL PROTECTED]>
wrote:

> you shouldnt be overriding that method, try implementing
> IMarkupResourceStreamProvider instead.
>
> -igor
>
>
> On Tue, May 6, 2008 at 11:20 PM, Eyal Golan <[EMAIL PROTECTED]> wrote:
> > ok, maybe I wasn't clear enough.
> >  The simple question is, why the add(HeaderContributor.forCss...));
> >  is not added to the output markup when I override
> getAssociatedMarkupStream?
> >
> >  Thanks
> >
> >
> >
> >  On Tue, May 6, 2008 at 4:08 PM, Eyal Golan <[EMAIL PROTECTED]> wrote:
> >
> >  > Hi all,
> >  > We have this method:
> >  >     @Override
> >  >     public MarkupStream getAssociatedMarkupStream(final boolean
> >  > throwException)
> >  >     {
> >  >         if(html != null) {
> >  >             return GUIUtis.getMarkupStream(this, html);
> >  >         }
> >  >         return super.getAssociatedMarkupStream(throwException);
> >  >     }
> >  >
> >  > and:
> >  >     static public MarkupStream getMarkupStream(Page page,String
> htmlText){
> >  >         try
> >  >         {
> >  >             StringResourceStream myhtml = new StringResourceStream(new
> >  > StringBuilder(htmlText));
> >  >             MarkupResourceStream m = new MarkupResourceStream(myhtml);
> >  >             Markup myMarkup =
> >  >
> page.getApplication().getMarkupSettings().getMarkupParserFactory().newMarkupParser(m).parse();
> >  >             MarkupStream markupStream = new MarkupStream(myMarkup);
> >  >             return markupStream;
> >  >         }
> >  >         catch (Exception ex)
> >  >         {
> >  >             throw new RuntimeException("Fail to parse
> >  > markup:\n"+htmlText);
> >  >         }
> >  >     }
> >  >
> >  > The problem:
> >  > When the html is not null (and we enter GUIUtis.getMarkupStream),
> >  > css that where added using HeaderContributer are not added to the
> output
> >  > HTML markup.
> >  > I have something like this in a component:
> >  > add(HeaderContributor.forCss(EurekifyButton.class,
> "EurekifyButton.css"));
> >  > The css is missing.
> >  >
> >  > I can't change the usage of getAssociatedMarkupStream to use variation
> or
> >  > something like this.
> >  >
> >  > any thought?
> >  > --
> >  > Eyal Golan
> >  > [EMAIL PROTECTED]
> >  >
> >  > Visit: http://jvdrums.sourceforge.net/
> >
> >
> >
> >
> >  --
> >  Eyal Golan
> >  [EMAIL PROTECTED]
> >
> >  Visit: http://jvdrums.sourceforge.net/
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
Eyal Golan
[EMAIL PROTECTED]

Visit: http://jvdrums.sourceforge.net/

Reply via email to