X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fwamblee%2Fphotos%2Fwicket%2FHomePage.java;h=a7aa1a3785d1568ec50504b57d24db05aed19460;hb=6c8dd0362c097e5d3e40ca066b67ce6834e555df;hp=289f783e35340e3358eb48ecb0e5669475007446;hpb=c64efa2d2002d15b22f458391cd44dfca44f8c96;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 289f783..a7aa1a3 100644 --- a/src/main/java/org/wamblee/photos/wicket/HomePage.java +++ b/src/main/java/org/wamblee/photos/wicket/HomePage.java @@ -19,6 +19,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; +import java.util.logging.Logger; import javax.inject.Inject; import org.apache.wicket.PageParameters; @@ -41,6 +42,8 @@ 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 @@ -71,9 +74,14 @@ public class HomePage extends BasePage { @Override public void onClick() { System.out.println("Entry " + path + " was clicked"); + 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. * @@ -81,6 +89,13 @@ public class HomePage extends BasePage { */ public HomePage(final PageParameters parameters) throws Exception { super(); + + path = parameters.getString("path", "/"); + if (!path.startsWith("/")) { + info("Invalid album '" + path + "', showing root album instead"); + path = "/"; + } + add(new Label("message", "Hello world!")); System.out.println("Currently logged in user: " + user); @@ -103,21 +118,29 @@ public class HomePage extends BasePage { System.out.println("Entry " + i + " " + entry.getId() + " " + entry.getPath()); } + PhotoEntry current = authorized.getEntry(path); + + if (current instanceof Photo) { + throw new RuntimeException("Photo entry viewing not yet implemented"); + } + + Album album = (Album) current; + int ientry = 0; int irow = 0; RepeatingView row = new RepeatingView("row"); add(row); - while (irow < 5 && ientry < authorized.size()) { + while (irow < 5 && ientry < album.size()) { int icolumn = 0; WebMarkupContainer columns = new WebMarkupContainer(row.newChildId()); row.add(columns); RepeatingView column = new RepeatingView("column"); columns.add(column); - while (icolumn < 5 && ientry < authorized.size()) { + while (icolumn < 5 && ientry < album.size()) { WebMarkupContainer thumbnail = new WebMarkupContainer(column.newChildId()); column.add(thumbnail); - final PhotoEntry entry = authorized.getEntry(ientry); + final PhotoEntry entry = album.getEntry(ientry); Link link = new SerializableEntryLink("thumbnail", entry.getPath()); thumbnail.add(link); ImageData data = getData(entry); @@ -125,7 +148,7 @@ public class HomePage extends BasePage { // TODO very inefficient. all data is loaded when generating the page. link.add(new Image("image", new ByteArrayResource(data.getContentType(), data.getData()))); - link.add(new Label("name", authorized.getEntry(ientry).getId())); + link.add(new Label("name", album.getEntry(ientry).getId())); icolumn++; ientry++; }