source: VirtualCollectionRegistry/tags/VirtualCollectionRegistry-0.4.0-alpha2/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/AuthenticationStatePanel.java @ 5557

Last change on this file since 5557 was 5557, checked in by Twan Goosen, 10 years ago

tag for VCR alpha 2

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1package eu.clarin.cmdi.virtualcollectionregistry.gui.pages;
2
3import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession;
4import org.apache.wicket.authentication.AuthenticatedWebSession;
5import org.apache.wicket.markup.html.basic.Label;
6import org.apache.wicket.markup.html.link.Link;
7import org.apache.wicket.markup.html.panel.Fragment;
8import org.apache.wicket.markup.html.panel.Panel;
9import org.apache.wicket.model.Model;
10
11@SuppressWarnings("serial")
12public class AuthenticationStatePanel extends Panel {
13
14    public AuthenticationStatePanel(String id) {
15        super(id);
16        setRenderBodyOnly(true);
17        add(new LoginFragment("login"));
18        add(new LogoutFragment("logout"));
19    }
20
21    private class LoginFragment extends Fragment {
22
23        public LoginFragment(String id) {
24            super(id, "loginFragment", AuthenticationStatePanel.this);
25            setRenderBodyOnly(true);
26            add(new Link("loginLink") {
27
28                @Override
29                public void onClick() {
30                    setResponsePage(new DummyLoginPage(getPage().getPageReference()));
31                }
32            });
33        }
34
35        @Override
36        public boolean isVisible() {
37            return !((AuthenticatedWebSession) getSession()).isSignedIn();
38        }
39
40        @Override
41        protected boolean getStatelessHint() {
42            return true;
43        }
44    } // private class LoginFragment
45
46    private class LogoutFragment extends Fragment {
47
48        private final Label usernameLabel;
49
50        public LogoutFragment(String id) {
51            super(id, "logoutFragment", AuthenticationStatePanel.this);
52            setRenderBodyOnly(true);
53            usernameLabel = new Label("username");
54            usernameLabel.setRenderBodyOnly(true);
55            add(usernameLabel);
56//            final StatelessLink logoutLink = new StatelessLink("logoutLink") {
57//                @Override
58//                public void onClick() {
59//                }
60//            };
61//            add(logoutLink);
62        }
63
64        @Override
65        public boolean isVisible() {
66            return ((AuthenticatedWebSession) getSession()).isSignedIn();
67        }
68
69        @Override
70        protected void onBeforeRender() {
71            ApplicationSession session = (ApplicationSession) getSession();
72            final Model<String> userModel
73                    = new Model<String>(session.getUserDisplay());
74            usernameLabel.setDefaultModel(userModel);
75            super.onBeforeRender();
76        }
77    } // private class LogoutFragment
78
79    @Override
80    protected boolean getStatelessHint() {
81        return true;
82    }
83
84} // class AuthenticationStatePanel
Note: See TracBrowser for help on using the repository browser.