X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fwamblee%2Fphotos%2Fwicket%2FHomePage.java;h=4a34bc0da750792de94ece9fb53d7a0605f90e0d;hb=387bef406fe4b276473d4063c4d227fce6ff2e11;hp=ccb667034e39cf7bd512dfaada84396f83b280c0;hpb=06bf9182a5cd8b626d8e66c1fde4e8e6c722a0b5;p=photos diff --git a/src/main/java/org/wamblee/photos/wicket/HomePage.java b/src/main/java/org/wamblee/photos/wicket/HomePage.java index ccb6670..4a34bc0 100644 --- a/src/main/java/org/wamblee/photos/wicket/HomePage.java +++ b/src/main/java/org/wamblee/photos/wicket/HomePage.java @@ -16,14 +16,16 @@ package org.wamblee.photos.wicket; import java.util.List; - +import java.util.logging.Logger; import javax.inject.Inject; import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.link.Link; import org.wamblee.photos.model.Album; +import org.wamblee.photos.model.Photo; import org.wamblee.photos.model.PhotoEntry; import org.wamblee.photos.model.plumbing.AllPhotos; +import org.wamblee.photos.model.plumbing.AuthorizedPhotos; import org.wamblee.security.authentication.User; import org.wamblee.security.authentication.UserAdministration; @@ -32,31 +34,58 @@ import org.wamblee.security.authentication.UserAdministration; */ public class HomePage extends BasePage { + private static final Logger LOGGER = Logger.getLogger(HomePage.class.getName()); + private static final long serialVersionUID = 1L; @Inject - private User user; + private transient User user; @Inject - private UserAdministration userAdmin; + private transient UserAdministration userAdmin; + + // TODO the state should be stored as a path. @Inject @AllPhotos - private Album album; + private transient Album album; + + @Inject + @AuthorizedPhotos + private transient Album authorized; - // @Inject - // @AuthorizedPhotos - // private Album authorized; + private class SerializableEntryLink extends Link { + + private String path; + + public SerializableEntryLink(String aId, String aPath) { + super(aId); + path = aPath; + } + + @Override + public void onClick() { + PageParameters pars = new PageParameters(); + pars.put("path", path); + setResponsePage(HomePage.class, pars); + } + } + + private String path; /** * Constructor that is invoked when page is invoked without a session. - * - * @param parameters - * Page parameters + * + * @param parameters Page parameters */ public HomePage(final PageParameters parameters) throws Exception { super(); - add(new Label("message", "Hello world!")); + + path = parameters.getString("path", "/"); + if (!path.startsWith("/")) { + info("Invalid album '" + path + "', showing root album instead"); + path = "/"; + } System.out.println("Currently logged in user: " + user); @@ -69,17 +98,21 @@ public class HomePage extends BasePage { System.out.println("Entries: " + album.size()); for (int i = 0; i < album.size(); i++) { PhotoEntry entry = album.getEntry(i); - System.out.println("Entry " + i + " " + entry.getId() + " " + - entry.getPath()); + System.out.println("Entry " + i + " " + entry.getId() + " " + entry.getPath()); } - /* System.out.println("Authorized Entries: " + authorized.size()); for (int i = 0; i < authorized.size(); i++) { PhotoEntry entry = authorized.getEntry(i); - System.out.println("Entry " + i + " " + entry.getId() + " " + - entry.getPath()); + System.out.println("Entry " + i + " " + entry.getId() + " " + entry.getPath()); + } + + PhotoEntry current = authorized.getEntry(path); + + if (current instanceof Photo) { + add(new PhotoPanel("content", parameters)); + } else { + add(new AlbumPanel("content", parameters)); } - */ } -} +} \ No newline at end of file