janos
2008/4/29 János Jarecsni <[EMAIL PROTECTED]>:
Hi Chris,
even so you could help :) I want this kind of generic way of
passing
around information (component to component communication :))
so
I'll
look
for the solutions Kristian and you outlined.
thanks!
cheers,
janos
2008/4/29 Chris Lewis <[EMAIL PROTECTED]>:
Janos,
Without code or a description of your actual goal, I'm
finding
your
situation too hypothetical to really digest. The one thing I can
point
out is what you said about wanting a component to set a property
in
the
page. If you want to do that, then you have to know the class
of
the
page and so injecting a page would make sense. Of course that
means
tightly coupling a component to a page, which to me doesn't make
sense.
If you simply need a generic way of passing data between pages
and
components, consider using a service that provides an
untyped
list
or
putting something in the environment as Kristian suggested. I'm
sorry
I
can't be more helpful but as I said I'm not clear on what
you're
really
trying to do.
good luck
chris
János Jarecsni wrote:
Hi Chris,
I thought of pages as "contexts" for the components
embedded
within
them.
So, in one event handler of a component I would like to set
some
property or
another (in the page object), and the other components in
the
page,
which
are also able to access this property may change their
appearance
(say, the
.TML would test the property). Maybe I'm on a wrong track,
please
let
me
know :)
thx
Cheers,
janos
2008/4/29 Chris Lewis <[EMAIL PROTECTED]>:
Janos,
I'm having a hard time understanding a case that a
component
should
know
in which page it is embedded, so my suggestion probably wasn't
a
good
one. Activation contexts aren't meant for components but for
pages
-
you
should be using component parameters to configure them, and
if
it's
a
more sophisticated component, probably a service.
chris
János Jarecsni wrote:
and how a component can get to know the page in which
it is
included? I
mean, I can't @InjectPage, as the component will be
included
in
many
kinds
of pages.
@Kristian: thx for the many ways :) I'll try these,
hope
that
the
@Environmental stuff is scalable (I'm trying to bypass
session
creation
as
much as possible)
Is there a doc on the various annotations available?
@Michael:
Could you include a tiny bit of example? THX!
Thx to you all
cheers
janos
2008/4/29 Chris Lewis <[EMAIL PROTECTED]>:
5) @InjectPage the page and call the getter
Kristian Marinkovic wrote:
hi janos,
there are several possibilities:
1) declare a component parameter and pass in the
variable
2) put it in a ASO and inject the ASO in all your
components
(using
@ApplicationState)
the drawback is that any other page or component will
be
able to
access
the ASO
3) put it into the Environment and read it whereever
you
need it
in
your
nested components.
be careful when you put your object in your
environment. if
you
put it
in
during the action
request it will not be able in the render request
(because
of
the
page
redirect).
page:
@Inject Environment env;
@Persist("flash") whateverclass w;
onActivate(w) { this.w= w }
setupRender() { env.push(whateverclass.class,w);}
components:
@Environmental Whateverclass var;
4) define a service that can take this variable
(and
saves
it
appropriatly
so it is not
lost on a redirect:)) and inject your service in
the
components
where
needed
to retrieve the value.
maybe there are some more possibilities :)
g,
kris
"János Jarecsni" <[EMAIL PROTECTED]>
29.04.2008 08:15
Bitte antworten an
"Tapestry users" <users@tapestry.apache.org>
An
"Tapestry users" <users@tapestry.apache.org>
Kopie
Thema
page activation + components
Hi there,
I have an activatable page, in its
onActivate(String
param)
method
I
save
the param to a normal instance variable of the page
class
(no
persistence!).
How can any component embedded within this page access
this
variable?
the page class:
//...
private String param;
public void onActivate(String param) {
this.param = param;
}
public String getParam() {...}
Thx in advance!
Janos
--
http://thegodcode.net
------------------------------------------------------------------
---
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: users-
[EMAIL PROTECTED]
--
http://thegodcode.net
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
--
http://thegodcode.net
------------------------------------------------------------------
---
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
---------------------------------------------------------------------