Hi Ville,
thanks for your answer, but i didn't see how to do it. I will try to
explain my problem more in detail (sorry for my bad english):
We are using a component that is similar to [1] with the main difference
that we don't use a getTreeNodes, we use a getTreeRoot (e.g. single
element, not all elements of the tree) and doing our rendering inside the
java-component (we don't have a tml for our component) via the MarkupWriter.
The TreeDemo.tml from [1] allows to use a component 'Tree' like follows:
t:Tree treeid='literal:demo' source=treeNodes currentNode=node
t:actionlink t:id=tree context=node.identifier
${node.name}
/t:actionlink
/t:Tree
We can't use an actionlink because we only have a root node and iterate it
inside our java class (recursively via the processRoot method). Normally we
would like to do something like the following (TreeNode.tml):
div id=someid
t:if test=identifierEqualsX
t:beaneditor object=current/
p:else
current.name
/p:else
/t:if
t:loop source=current.children value=child
t:TreeNode element=child/
/t:loop
/div
but thats not allowed, e.g The template for component.. is recursive...
This is not supported so we are trying to do this inside a java class
(without a tml).
Now we want to render a beaneditor for a specific identifier inside the
java class, something like the following would be nice.
void processRoot(Node current, MarkupWriter writer) {
// open div
if (current.getIdentifier().equals(X)) {
---writer.renderBeaneditor(editor); ---
} else {
// display some informations of the node
}
for (Node child : current.getChildren()) {
processRoot(child, writer);
}
// close div
}
but i don't know how to add/declare/instanciate the beaneditor?
Thanks for any hints!
Oliver
[1] http://wiki.apache.org/tapestry/Tapestry5TreeComponent
-Ursprüngliche Nachricht-
Von: Ville Virtanen ville.virta...@cerion.fi
Gesendet: 27.07.2010 09:15:31
An: users@tapestry.apache.org
Betreff: Re: [T5.1] No recursive component - Howto render Beaneditor in code?
Hi,
@InjectComponent injects the component defined in tml, @Component injects
instance that is configured by the annotation itself (and the associated tml
if it is defined there also).
http://tapestry.apache.org/tapestry5.1/apidocs/org/apache/tapestry5/annotations/Component.html
- Ville
Oliver Bauer wrote:
Hi,
we have noted that T5 doesn't allow recursive components[1],
so we are currently doing something like this:
We reference our component in an arbritrary tml like this:
t:MyComponent
source=root
currentNode=currentNode
/t:MyComponent
The code stub of the component:
boolean setupRender(MarkupWriter writer) {
// write some opening div
}
void beforeRenderBody(MarkupWriter writer) {
processRoot(source, writer);
}
void cleanupRender(MarkupWriter writer) {
// close some opened div's
}
This works fine (#processRoot calls itself recursively for its children),
but now we
want to display a bean editor in a Node (in processRoot()). Is it possible
to reference
a component (like a bean editor) in a component being written in Java? Are
there any
examples how to achieve this?
TIA, Oliver
[1] [https://issues.apache.org/jira/browse/TAP5-739]
___
Neu: WEB.DE De-Mail - Einfach wie E-Mail, sicher wie ein Brief!
Jetzt De-Mail-Adresse reservieren: https://produkte.web.de/go/demail02
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
--
View this message in context:
http://old.nabble.com/-T5.1--No-recursive-component--%3E-Howto-render-Beaneditor-in-code--tp29273576p29273645.html
Sent from the Tapestry - User mailing list archive at Nabble.com.
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org
___
WEB.DE DSL ab 19,99 Euro/Monat. Bis zu 150,- Euro Startguthaben und
50,- Euro Geldprämie inklusive! https://freundschaftswerbung.web.de
-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org