-Igor
On 8/2/06, Eelco Hillenius <
[EMAIL PROTECTED]> wrote:
I haven't read it in detail, but variation is not meant for doing that
kind of stuff (though it should work). Rather, use panels and
replacement (switch the panels).
Eelco
On 8/2/06, Juergen Donnerstag <[EMAIL PROTECTED] > wrote:
> I guess it is because Wicket caches the Markup associated with a
> Component. Wicket assumes that the associated Markup does not change
> once loaded, except if you change the markup file content itself,
> because the cache will be cleared than. I guess I would create two
> separate Panels for LoggedIn and LoggedOut and either add() the one or
> the other to the container.
>
> Juergen
>
> On 8/2/06, Stefan Arentz <[EMAIL PROTECTED]> wrote:
> > I have a simple Panel that we call the QuickLogInPanel. This is a
> > panel located in a 'side bar'. When the user is not logged in the
> > panel shows a simple username/password form. After logging in I want
> > to show just some text and a log out button.
> >
> > So I did this:
> >
> > public class QuickLogInPanel extends Panel
> > {
> > public QuickLogInPanel(String string)
> > {
> > super(string);
> >
> > MySession session = (MySession) getSession();
> >
> > if ( session.getUser() == null) {
> > add(new LogInForm("logInForm", new
> > CompoundPropertyModel(new LogInCommand())));
> > } else {
> > add(new PageLink("logOutLink", LogOutPage.class));
> > }
> > }
> >
> > public String getVariation()
> > {
> > MySession session = (MySession) getSession();
> >
> > if ( session.getUser() == null) {
> > return "LoggedOut";
> > } else {
> > return "LoggedIn";
> > }
> > }
> >
> > class LogInCommand
> > {
> > private String login;
> >
> > public String getLogin()
> > {
> > return login;
> > }
> >
> > public void setLogin(String login)
> > {
> > this.login = login;
> > }
> >
> > private String password;
> >
> > public String getPassword()
> > {
> > return password;
> > }
> >
> > public void setPassword(String password)
> > {
> > this.password = password;
> > }
> > }
> >
> > class LogInForm extends Form
> > {
> > @SpringBean
> > private LogInFacade logInFacade;
> >
> > public LogInForm(String id, IModel model)
> > {
> > super(id, model);
> >
> > add(new TextField("login"));
> > add(new PasswordTextField("password"));
> >
> > add(new PageLink("forgotPasswordLink", ForgotPasswordPage.class));
> > add(new PageLink("signUpLink", SignUpPage.class));
> > }
> >
> > protected void onSubmit()
> > {
> > LogInCommand logInCommand = (LogInCommand) getModelObject();
> > User user = logInFacade.login( logInCommand.getLogin(),
> > logInCommand.getPassword());
> > if (user != null) {
> > MySession session = (MySession) getSession();
> > session.setUser (user);
> > setResponsePage(getApplication().getHomePage());
> > }
> > }
> > }
> > }
> >
> > Together with two markup files:
> >
> > QuickLogInPanel_LoggedIn.html
> > QuickLogInPanel_LoggedOut.html
> >
> > But this gives all sorts of problems during logging in and out.
> >
> > I get the following error when the user logs in and the page is rendered again:
> >
> > WicketMessage: Unable to find component with id 'logOutLink' in MarkupContainer
> >
> > this is probably because the Panel is already instantiated; the
> > constructor is not run again of course.
> >
> > Is there a way to 'reset' the component or to mark it 'dirty' so that
> > the parent page will create it again?
> >
> > The Logout action shows the same kind of behaviour.
> >
> > I know I can fix this by putting some logic in the owning page and use
> > two different kinds of panels, but I think one panel that just figures
> > out what to do by itself is more elegant.
> >
> > S.
> >
> > -------------------------------------------------------------------------
> > Take Surveys. Earn Cash. Influence the Future of IT
> > Join SourceForge.net 's Techsay panel and you'll get the chance to share your
> > opinions on IT & business topics through brief surveys -- and earn cash
> > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user