Something else i've noticed ... if i modify my mixin to always return true 
during the @BeginRender phase I still get the exception!

----- Original Message ----
From: Toby Hobson <[EMAIL PROTECTED]>
To: Tapestry users <users@tapestry.apache.org>
Sent: Tuesday, 13 May, 2008 4:52:33 PM
Subject: Re: Mixin render phases

So if I've read the JIRA correctly does this mean that simply implementing 
@BeginRender and @AfterRender in my mixin is not enough - I would actually have 
the modify the component (in this case textarea)? to check for short-circuiting?

Toby

----- Original Message ----
From: Kristian Marinkovic <[EMAIL PROTECTED]>
To: Tapestry users <users@tapestry.apache.org>
Sent: Tuesday, 13 May, 2008 3:03:49 PM
Subject: RE: Mixin render phases

hi toby,

i think i had the same issue some time ago

i was also trying to create a mixin for enabled/disabled 
handling by short circuiting the render phases. but the
render phases (or at least the short circuiting) do not 
work as i was expecting :). 

maybe you can take a look at the problem description (it think 
there are a lot of details in the comments) of the jira at 
https://issues.apache.org/jira/browse/TAPESTRY-1805
 and comment on it.


g,
kirs




Toby Hobson <[EMAIL PROTECTED]> 
13.05.2008 15:24
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>


An
users@tapestry.apache.org
Kopie

Thema
Mixin render phases






Hi guys,

I'm trying to show/hide an html element based on Robert's recent 
suggestion (Re: how do we secure our views) but I've hit a minor problem. 
The mixin's @BeforeRender method is being called but then tapestry 
complains that the component (textArea) is unbalanced. I'm using the 
component and mixin in a custom component, not a page. Here is the code

The mixin:
public class Visible {
  @Parameter(required=true)
  private boolean visible;

  @BeginRender
  boolean render() {
    return visible;
  }
}

The custom component:

    @Component(id="reason", parameters={"value=violation.message", 
"visible=true"})
    @Mixins("visible")
    private TextArea reason;

The custom component's tml

    <t:form>
            <t:textArea t:id="reason" />
            <input type="submit" />
    </t:form>

When the component renders I get the following exception:

"Render queue error in 
CleanupRender[TestViolations:violations.reason]:Component 
TestViolations:violations.reason has rendered unbalancedelements; either 
it has started an element with MarkupWriter.element()and not followed up 
with MarkupWriter.end(), or it has invokedMarkupWriter.end() without first 
invoking MarkupWriter.element()."

"TestViolations" is the page which includes the custom component, 
"Violations" is the custom component

Does anyone have any ideas?

Thanks

Toby










Reply via email to