some cleanup
authorErik Brakkee <erik@brakkee.org>
Wed, 25 Sep 2013 19:41:49 +0000 (21:41 +0200)
committerErik Brakkee <erik@brakkee.org>
Wed, 25 Sep 2013 19:41:49 +0000 (21:41 +0200)
src/main/java/org/wamblee/photos/wicket/AlbumPanel.java

index 70fc097f4717d05c0957d8aec219c5ef1a3f7ec0..c351180e68dbb178cd77b9bb12be435bfac53cc1 100644 (file)
@@ -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<String> pathinfo = new MyValueHolder<String>();
                                 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