From 2534c8411d642dcee10ea6f9b2b82371e1311c49 Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Wed, 25 Sep 2013 21:41:49 +0200 Subject: [PATCH 1/1] some cleanup --- .../org/wamblee/photos/wicket/AlbumPanel.java | 95 ++----------------- 1 file changed, 9 insertions(+), 86 deletions(-) diff --git a/src/main/java/org/wamblee/photos/wicket/AlbumPanel.java b/src/main/java/org/wamblee/photos/wicket/AlbumPanel.java index 70fc097..c351180 100644 --- a/src/main/java/org/wamblee/photos/wicket/AlbumPanel.java +++ b/src/main/java/org/wamblee/photos/wicket/AlbumPanel.java @@ -15,9 +15,6 @@ */ package org.wamblee.photos.wicket; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; import java.io.Serializable; import java.util.logging.Logger; import javax.inject.Inject; @@ -219,35 +216,19 @@ public class AlbumPanel extends Panel { final PhotoEntry entry = album.getEntry(ientry.getValue()); Link link = new SerializableEntryLink("thumbnail", entry.getPath()); thumbnail.add(link); - //ImageData data = getData(entry); - - // 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 Image("image", - // new ContextRelativeResource("image/thumbnail" + entry.getPath()))); - - //final String url = "/image/thumbnail/" + entry.getPath(); + final ValueHolder pathinfo = new MyValueHolder(); if (entry instanceof Photo) { - link.add(new Image("image") { - @Override - protected void onComponentTag(ComponentTag tag) { - tag.put("src", - context.getContextPath() + "/image/thumbnail/" + entry.getPath()); - } - }); + pathinfo.setValue("/image/thumbnail/" + entry.getPath()); } else { - link.add(new Image("image") { - @Override - protected void onComponentTag(ComponentTag tag) { - //tag.put("src", context.getContextPath() + "/resources/folder.png" + - // entry.getPath()); - tag.put("src", context.getContextPath() + "/image/resource/folder.png"); - } - }); + pathinfo.setValue("/image/resource/folder.png"); } + link.add(new Image("image") { + @Override + protected void onComponentTag(ComponentTag tag) { + tag.put("src", context.getContextPath() + pathinfo.getValue()); + } + }); link.add(new Label("name", album.getEntry(ientry.getValue()).getId())); icolumn++; @@ -282,62 +263,4 @@ public class AlbumPanel extends Panel { } return (Album) current; } - - public static final class ImageData { - private String contentType; - private byte[] data; - - public ImageData(String aContentType, byte[] aData) { - contentType = aContentType; - data = aData; - } - - public String getContentType() { - return contentType; - } - - public byte[] getData() { - return data; - } - } - - private ImageData getData(PhotoEntry aEntry) { - if (aEntry instanceof Photo) { - return getData((Photo) aEntry); - } else if (aEntry instanceof Album) { - return getData((Album) aEntry); - } else { - throw new RuntimeException("Unsupported type " + aEntry.getClass().getName()); - } - } - - private ImageData getData(Photo aPhoto) { - try (InputStream is = aPhoto.getThumbNail()) { - return new ImageData("image/jpeg", getBytes(is)); - } - catch (IOException e) { - // to improve. - throw new RuntimeException("Cannot read photo", e); - } - } - - private byte[] getBytes(InputStream is) throws IOException { - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - byte[] block = new byte[1024]; - int n = is.read(block); - while (n > 0) { - bos.write(block, 0, n); - n = is.read(block); - } - return bos.toByteArray(); - } - - private ImageData getData(Album aAlbum) { - try (InputStream is = getClass().getResourceAsStream("folder.png")) { - return new ImageData("image/png", getBytes(is)); - } - catch (IOException e) { - throw new RuntimeException("Cannot read album jpg", e); - } - } } \ No newline at end of file -- 2.31.1