2 * Copyright 2005-2010 the original author or authors.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.wamblee.photos.wicket;
18 import java.util.List;
19 import java.util.logging.Logger;
20 import javax.inject.Inject;
22 import org.apache.wicket.PageParameters;
23 import org.apache.wicket.markup.html.basic.Label;
24 import org.apache.wicket.markup.html.link.Link;
25 import org.wamblee.photos.model.Album;
26 import org.wamblee.photos.model.Photo;
27 import org.wamblee.photos.model.PhotoEntry;
28 import org.wamblee.photos.model.plumbing.AllPhotos;
29 import org.wamblee.photos.model.plumbing.AuthorizedPhotos;
30 import org.wamblee.security.authentication.User;
31 import org.wamblee.security.authentication.UserAdministration;
36 public class HomePage extends BasePage {
38 private static final Logger LOGGER = Logger.getLogger(HomePage.class.getName());
40 private static final long serialVersionUID = 1L;
43 private transient User user;
46 private transient UserAdministration userAdmin;
48 // TODO the state should be stored as a path.
52 private transient Album album;
56 private transient Album authorized;
58 private class SerializableEntryLink extends Link {
62 public SerializableEntryLink(String aId, String aPath) {
68 public void onClick() {
69 System.out.println("Entry " + path + " was clicked");
70 PageParameters pars = new PageParameters();
71 pars.put("path", path);
72 setResponsePage(HomePage.class, pars);
79 * Constructor that is invoked when page is invoked without a session.
81 * @param parameters Page parameters
83 public HomePage(final PageParameters parameters) throws Exception {
86 path = parameters.getString("path", "/");
87 if (!path.startsWith("/")) {
88 info("Invalid album '" + path + "', showing root album instead");
92 add(new Label("message", "Hello world!"));
94 System.out.println("Currently logged in user: " + user);
96 List<String> usernames = userAdmin.getUsers();
97 System.out.println("All user names: " + usernames);
99 usernames = userAdmin.getUsers("public");
100 System.out.println("Users in group public: " + usernames);
102 System.out.println("Entries: " + album.size());
103 for (int i = 0; i < album.size(); i++) {
104 PhotoEntry entry = album.getEntry(i);
105 System.out.println("Entry " + i + " " + entry.getId() + " " + entry.getPath());
108 System.out.println("Authorized Entries: " + authorized.size());
109 for (int i = 0; i < authorized.size(); i++) {
110 PhotoEntry entry = authorized.getEntry(i);
111 System.out.println("Entry " + i + " " + entry.getId() + " " + entry.getPath());
114 PhotoEntry current = authorized.getEntry(path);
116 if (current instanceof Photo) {
117 throw new RuntimeException("Photo entry viewing not yet implemented");
120 Album album = (Album) current;
122 add(new AlbumPanel("content", parameters));