How to get current element in mixin

2014-08-29 Thread Michael
I need a mixin which can be attached to different elements (with and
without body). The mixin wraps original element with another and adds some
classes to the original. How I can get current element while render? I'd
use writer.getElement() in render body but its not triggered in components
with empty body. In begin render phase writer returns container instead of
current element.


Re: How to get current element in mixin

2014-08-29 Thread Lance Java
@MixinAfter
public class MyMixin {
   void afterRender(MarkupWriter writer) {
  ListNode children = writer.getElement().getChildren();
  if (!children.isEmpty()) {
 Element lastChild = (Element) children.get(children.size() - 1);
 doStuff(lastChild);
  }
   }
}


Re: How to get current element in mixin

2014-08-29 Thread Thiago H de Paula Figueiredo
There's another solution, but it just works when the component is a  
ClientElement:


@MixinAfter
public class MyMixin {

@InjectContainer
private ClientElement clientElement;

void afterRender(MarkupWriter writer) {
Element element = 
writer.getElementById(clientElement.getClientId());
}

}

I have not tested the code above.

On Fri, 29 Aug 2014 06:04:18 -0300, Lance Java lance.j...@googlemail.com  
wrote:



@MixinAfter
public class MyMixin {
   void afterRender(MarkupWriter writer) {
  ListNode children = writer.getElement().getChildren();
  if (!children.isEmpty()) {
 Element lastChild = (Element) children.get(children.size() - 1);
 doStuff(lastChild);
  }
   }
}



--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org