Index: addon/builtin/repository/src/main/resources/hippostd-workflows-threepane.xml =================================================================== --- addon/builtin/repository/src/main/resources/hippostd-workflows-threepane.xml (revision 24258) +++ addon/builtin/repository/src/main/resources/hippostd-workflows-threepane.xml (working copy) @@ -52,6 +52,9 @@ ${editor.id} + + service.gallery.processor + 60 Index: addon/defaultcontent/repository/src/main/resources/defaultcontent-data.xml =================================================================== --- addon/defaultcontent/repository/src/main/resources/defaultcontent-data.xml (revision 24258) +++ addon/defaultcontent/repository/src/main/resources/defaultcontent-data.xml (working copy) @@ -581,7 +581,7 @@ new-image-folder - hippogallery:exampleImageSet + hippogallery:imageset preview Index: addon/defaultcontent/repository/src/main/resources/defaultcontent-image-example.xml =================================================================== --- addon/defaultcontent/repository/src/main/resources/defaultcontent-image-example.xml (revision 24258) +++ addon/defaultcontent/repository/src/main/resources/defaultcontent-image-example.xml (working copy) @@ -32,7 +32,7 @@ new-image-folder - hippogallery:exampleImageSet + hippogallery:imageset preview @@ -52,7 +52,7 @@ - hippogallery:exampleImageSet + hippogallery:imageset hippo:harddocument @@ -68,9 +68,12 @@ preview live + + Hippo.jpg + - hippo:resource + hippogallery:image /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABRAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD34nisu81KT7U1lp8InuwMuWOI4Qem8+v+yOfoOal1i8ey02SWEZnYiOEHu7EKv4ZNP03T49Os1gQlm+9JI33pHPVj7k1aSS5mYTcpS9nF27spjRXufm1G/ubhj/yzjcwxj6KpyfxJqVfD2jquDptq3u8QYn8TzWngUtHtJ9GNYel1in66/mZDeHdOU7oEltW7G2maPH4A4/SomfVNKbdIx1GzH3m2hZox64HDj6AH61uYpCOKftH9rUTw8V8HuvyIba5hvLeO4t5FkikGVZehFT1jT2NzY3L3mlhWEh3T2jNtWQ/3lP8AC36Hv60o8SWSYFyLm1k/iSaBxj8QCD+BodO+sNQVZR0q6P8AA2KKyF8SaQxwdQiT08wlM/TOKfBr1jcSogeWPzATG00LxrJxn5SwAPFL2c+zH9YpN25l95qUVUh1GzuZDHBeQSv/AHUkDH8gatDmpaa3NVJS1TFooopDOcjvodc8QxxQyB7awBlLDkSSHKjB7hRn8SPSuiHSsWaNLLxDZSKgSK4he3wowAwO9f0D1tjpWtS2ltrHNh01zc299f0/AKKKKyOkKKKKAEwKMClooApanZDUdMubPdt86MoGxnBPQ1WhiuNQjNtq+mQFBhtwcOjkHsCAR+I/OtbFJnFUpNKxlKlFy5v6Zg6pZWpubOzXSS6TEj7RAoU25XkHI6fmO/XpUkVzrFjEI7ixN6E486CVQzgdCVbHOOuD1ra61T1O3mudPnhtpvJmkQhXzjB/p+FWp3tFmcqPLecXr5W+7YfZ30N/bLPbtuQkggjBUjqCOxHpRXAeJptQ03WXh0kyCMxoZQpLfPjHU99oWiuqOAc0pRlZM86eb+yk4ShdrQ7rVrI32nvEjbJlIkhf+7Ipyp/Pr7ZpdL1Bb+zEhXZMhKTRk8xuOoP+ehFXcVjXqiw1q2v0+WK5YW1yB0JP3GPvn5c/7Q9K5I+8uX7j06nuS9ottn/n8vyNqikB4oyKzNxaTNZ1xrdpDcS2+y6kliwHEVtI4BIyBlQR0Iqq91rN9j7HaiyjHzeZd4LP7BFPAPck5GematU5bvQxdeC0Wr8tTbzS1m2GpNczPbXMDW95EAzxk5DL03Ke4/UdxWjkVLi4uzLhOM1dC5rI1PUri3vLa1soEuJ5N0jxl9uIwOuexyQBnr+eNQ81keG4VbS4dQb5rm9UTTSHkkkZC/QA4AqoWs5MzquTahF2v19LEsOv2W8Q3TPZTn/lndDZ+Ab7rfgTTNQ1iW1vraCGya6W4UmNopVBLDnGDjjHfNaksMc0RjljV0PVWGQfwqvbaXY2UrS2tlbwyMMM0cYUkfhTThvYUoVmrKXz6/qitpunNDbvJeCN7qdzLMRyATwFGewAA/DNFaWD6UVLk27lxpQirWH1Q1i0kvdKuIYf9dt3RZ/vqcr+oFX6KSbTui5xUouL6mOuuEKBJpepK+PmAtywB+o4NL/bi/8AQN1L/wABWrXoq+aHb8TL2dX+f8DI0hZZbvUbuS3lhS4lUxrKu1iAiqSR25BrVxTqKmT5nc0pw5I2/rXUxtQ82z1e1v1tZp4hDJDJ5K7mUkqVOO4+Ujj1FP8A7dX/AKBup/8AgK1a1FPmVtUR7KSbcZWv5GOdbGMrpmpFuw+zEZ/OrOi2slloljbTDEsUCI464IAzV+ihyVrJBGm1Lmk7hRRRUGwUUUUAFRySCOJ5MZCgtj1xUlQXf/HnP/1zb+VHQaV2kZml+IItU8PPq6QOiKrt5bEE/Ln/AAqv/wAJTCfCX9v/AGaTyv8AnluG77+3rXE6H4fvrzwg9/Fr15bwBJT9ljLbDjORwwHP0q+v/JGj9f8A2vXOqkmtex7NTBUI1LRd/fS66J30/wCCdRq3ieLStEstTa2klW6KBY1I3Dcpb+lVbLxrFNqdvY3ul3tg9wdsTzrgMfTnHsPxFY3i7d/wgvh/acN5kG0+h8o4rSg8L6ve6rZ3muatHcx2b+bFFFHty2QRngdwPypuU3Ky8iI0MLGhzVNG3Lq76bW6etyfUvGP2HWbjTYdJvLyWEKWMA3cEA5wAcdavaL4ns9Xs7qcxyWrWmftEcwwYxzyfyP5GuWnttWuPiLqy6TeR2swhjLtIm4FdqcdD7Vpp4WutP8ADmuF7k3WpahGzSMi4DEAnaB75P50KU7vtqFTD4WNOKbtJqPV31te/SxGfiFFnzxo98dN3bftYX5fTpjH65rs7eaO4t45omDRyKHVh3BGQa84TxNo6/Dk2BZftQtzbm32ndvPG76Z+bP9a7PwxazWfhrT4J8iRYVyD/DnnH4dKdOTb1dzPG4eFOHMoONm1r1Xf/htDYooorY8wKKKKACobn/j0m/3G/lRRSew4/Ejk/C//JPpP+uc/wDWqH/NJf8AP/PaiisPsr0PZf8AvEv+vi/Ul8T/APIn6D/10g/9ANdz6UUU4fE/kcmJ/hQ9ZfmjldO/5KNq/wD17R/ySurP3vwoorSns/VmOL+KPpH8keNTf8lG/wC37+tezDpRRWNDr6nfm+1L/CLRRRXSeOFFFFAH/9k= @@ -81,10 +84,16 @@ image/jpeg + + 100 + + + 81 + - + - hippo:resource + hippogallery:image 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 @@ -95,6 +104,12 @@ image/jpeg + + 175 + + + 142 + Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.html =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.html (revision 0) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.html (revision 0) @@ -0,0 +1,31 @@ + + + + +
+

+ +

+ +
+
+ + + + + + Property changes on: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.html ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.java =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.java (revision 0) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.java (revision 0) @@ -0,0 +1,63 @@ +/* + * Copyright 2010 Hippo. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.hippoecm.frontend.editor.plugins.resource; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; + +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.panel.Fragment; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; +import org.hippoecm.frontend.plugin.IPluginContext; +import org.hippoecm.frontend.plugin.config.IPluginConfig; +import org.hippoecm.frontend.service.render.RenderPlugin; +import org.hippoecm.repository.gallery.HippoGalleryNodeType; + +/** + * Displays a file name of an image set without editing options. + */ +public class FileNameDisplayPlugin extends RenderPlugin { + + private static final long serialVersionUID = 1L; + + public FileNameDisplayPlugin(IPluginContext context, IPluginConfig config) { + super(context, config); + + add(createFileNameFragment("fragment", getModel())); + } + + private Fragment createFileNameFragment(String id, IModel model) { + String fileName = ""; + try { + fileName = model.getObject().getProperty(HippoGalleryNodeType.ImageSet.FILE_NAME).getString(); + } catch (RepositoryException ignored) { + // ignore + } + + Fragment fragment = new Fragment(id, "filename", this); + fragment.add(new Label("name", new Model(fileName))); + return fragment; + } + + @Override + protected void onModelChanged() { + replace(createFileNameFragment("fragment", getModel())); + super.onModelChanged(); + redraw(); + } + +} Property changes on: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.properties =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.properties (revision 0) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.properties (revision 0) @@ -0,0 +1 @@ +filename.label: File name: Property changes on: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin.properties ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin_nl.properties =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin_nl.properties (revision 0) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin_nl.properties (revision 0) @@ -0,0 +1 @@ +filename.label: Bestandsnaam: Property changes on: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/FileNameDisplayPlugin_nl.properties ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.html =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.html (revision 24258) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.html (working copy) @@ -17,17 +17,25 @@
-
+
+
    +
  • + +
  • +
  • + +
  • +
  • - +
  • @@ -49,5 +57,5 @@ - + Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.java =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.java (revision 24258) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.java (working copy) @@ -1,12 +1,12 @@ /* * Copyright 2008 Hippo. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,6 +18,7 @@ import java.io.InputStream; import javax.jcr.Node; +import javax.jcr.PathNotFoundException; import javax.jcr.RepositoryException; import org.apache.wicket.Response; @@ -38,6 +39,7 @@ import org.hippoecm.frontend.resource.JcrResourceStream; import org.hippoecm.frontend.service.IEditor; import org.hippoecm.frontend.service.render.RenderPlugin; +import org.hippoecm.repository.gallery.HippoGalleryNodeType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -49,6 +51,9 @@ private static final Logger log = LoggerFactory.getLogger(ImageDisplayPlugin.class); + public static final int DEFAULT_DISPLAY_MAX_WIDTH = 800; + public static final int DEFAULT_DISPLAY_MAX_HEIGHT = 800; + ByteSizeFormatter formatter = new ByteSizeFormatter(); public ImageDisplayPlugin(IPluginContext context, IPluginConfig config) { @@ -78,29 +83,31 @@ } if (doCompare) { Fragment fragment = new Fragment("fragment", "compare", this); - Fragment baseFragment = createResourceFragment("base", baseModelRef.getModel()); + Fragment baseFragment = createResourceFragment("base", baseModelRef.getModel(), config); baseFragment.add(new AttributeAppender("class", new Model("hippo-diff-removed"), " ")); fragment.add(baseFragment); - Fragment currentFragment = createResourceFragment("current", getModel()); + Fragment currentFragment = createResourceFragment("current", getModel(), config); currentFragment.add(new AttributeAppender("class", new Model("hippo-diff-added"), " ")); fragment.add(currentFragment); add(fragment); } else { - add(createResourceFragment("fragment", getModel())); + add(createResourceFragment("fragment", getModel(), config)); } } else { - add(createResourceFragment("fragment", getModel())); + add(createResourceFragment("fragment", getModel(), config)); } } - private Fragment createResourceFragment(String id, IModel model) { + private Fragment createResourceFragment(String id, IModel model, IPluginConfig config) { final JcrResourceStream resource = new JcrResourceStream(model); Fragment fragment = new Fragment(id, "unknown", this); try { Node node = getModelObject(); final String filename; - if (node.getDefinition().getName().equals("*")) { + if (node.getParent().hasProperty(HippoGalleryNodeType.ImageSet.FILE_NAME)) { + filename = node.getParent().getProperty(HippoGalleryNodeType.ImageSet.FILE_NAME).getString(); + } else if (node.getDefinition().getName().equals("*")) { filename = node.getName(); } else { filename = node.getParent().getName(); @@ -108,33 +115,10 @@ String mimeType = node.getProperty("jcr:mimeType").getString(); if (mimeType.indexOf('/') > 0) { String category = mimeType.substring(0, mimeType.indexOf('/')); - if ("image".equals(category)) { - fragment = new Fragment(id, "image", this); - fragment.add(new JcrImage("image", resource)); + if ("image".equals(category) && shouldDisplayImage(resource, node, config)) { + fragment = createImageFragment(id, resource, node, config); } else { - fragment = new Fragment(id, "embed", this); - fragment.add(new Label("filesize", new Model(formatter.format(resource.length())))); - fragment.add(new Label("mimetype", new Model(resource.getContentType()))); - fragment.add(new ResourceLink("link", new JcrResource(resource) { - private static final long serialVersionUID = 1L; - - @Override - protected void configureResponse(Response response) { - if (response instanceof WebResponse) { - ((WebResponse) response).setHeader("Content-Disposition", "attachment; filename=" - + filename); - } - } - }) { - private static final long serialVersionUID = 1L; - - @Override - protected void onDetach() { - resource.detach(); - super.onDetach(); - } - - }); + fragment = createEmbedFragment(id, resource, filename); } } } catch (RepositoryException ex) { @@ -143,9 +127,75 @@ return fragment; } + protected Fragment createImageFragment(String id, final JcrResourceStream resource, Node node, IPluginConfig config) + throws RepositoryException { + Fragment fragment = new Fragment(id, "image", this); + fragment.add(new JcrImage("image", resource)); + addImageMetaData(node, fragment); + return fragment; + } + + protected boolean shouldDisplayImage(final JcrResourceStream resource, Node node, IPluginConfig config) + throws RepositoryException { + try { + long width = node.getProperty(HippoGalleryNodeType.Image.WIDTH).getLong(); + long height = node.getProperty(HippoGalleryNodeType.Image.HEIGHT).getLong(); + + final long maxWidth = config.getAsLong("display.max.width", 800); + final long maxHeight = config.getAsLong("display.max.height", 800); + + return width < maxWidth && height < maxHeight; + } catch (PathNotFoundException e) { + // width and/or height are not available + return false; + } + } + + protected void addImageMetaData(Node node, Fragment fragment) throws RepositoryException { + long width = 0; + long height = 0; + + try { + width = node.getProperty(HippoGalleryNodeType.Image.WIDTH).getLong(); + height = node.getProperty(HippoGalleryNodeType.Image.HEIGHT).getLong(); + } catch (PathNotFoundException ignored) { + log.debug("Cannot retrieve width and/or height of image"); + } + + fragment.add(new Label("width", new Model(width))); + fragment.add(new Label("height", new Model(height))); + } + + private Fragment createEmbedFragment(String id, final JcrResourceStream resource, final String filename) { + Fragment fragment = new Fragment(id, "embed", this); + fragment.add(new Label("filesize", new Model(formatter.format(resource.length())))); + fragment.add(new Label("mimetype", new Model(resource.getContentType()))); + fragment.add(new ResourceLink("link", new JcrResource(resource) { + private static final long serialVersionUID = 1L; + + @Override + protected void configureResponse(Response response) { + if (response instanceof WebResponse) { + ((WebResponse) response).setHeader("Content-Disposition", "attachment; filename=" + + filename); + } + } + }) { + private static final long serialVersionUID = 1L; + + @Override + protected void onDetach() { + resource.detach(); + super.onDetach(); + } + + }); + return fragment; + } + @Override protected void onModelChanged() { - replace(createResourceFragment("fragment", getModel())); + replace(createResourceFragment("fragment", getModel(), getPluginConfig())); super.onModelChanged(); redraw(); } Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.properties =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.properties (revision 24258) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin.properties (working copy) @@ -1,3 +1,6 @@ mimetype.label: Mime type: filesize.label: File size: download.link: Download +width.label: Width: +height.label: Height: +pixels.suffix: pixels \ No newline at end of file Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin_nl.properties =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin_nl.properties (revision 24258) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ImageDisplayPlugin_nl.properties (working copy) @@ -1,3 +1,6 @@ mimetype.label: Type: -filesize.label: Bestandsgrootte: +filesize.label: Bestandsgrootte: download.link: Download +width.label: Breedte: +height.label: Hoogte: +pixels.suffix: pixels Index: addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ResourceUploadPlugin.java =================================================================== --- addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ResourceUploadPlugin.java (revision 24258) +++ addon/editor/frontend/src/main/java/org/hippoecm/frontend/editor/plugins/resource/ResourceUploadPlugin.java (working copy) @@ -1,12 +1,12 @@ /* * Copyright 2008 Hippo. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -16,12 +16,14 @@ package org.hippoecm.frontend.editor.plugins.resource; import java.io.IOException; +import java.io.InputStream; import java.util.Calendar; import javax.jcr.Node; import javax.jcr.RepositoryException; import org.apache.commons.lang.StringUtils; +import org.apache.jackrabbit.JcrConstants; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.form.AjaxButton; import org.apache.wicket.markup.html.form.Form; @@ -36,7 +38,9 @@ import org.hippoecm.frontend.plugin.IPluginContext; import org.hippoecm.frontend.plugin.config.IPluginConfig; import org.hippoecm.frontend.plugins.gallery.model.GalleryException; +import org.hippoecm.frontend.plugins.gallery.model.GalleryProcessor; import org.hippoecm.frontend.plugins.gallery.model.ResourceHelper; +import org.hippoecm.frontend.plugins.gallery.processor.AbstractGalleryProcessor; import org.hippoecm.frontend.plugins.yui.upload.FileUploadWidget; import org.hippoecm.frontend.plugins.yui.upload.FileUploadWidgetSettings; import org.hippoecm.frontend.service.render.RenderPlugin; @@ -54,7 +58,7 @@ private IValueMap types; private FileUploadForm form; - public ResourceUploadPlugin(IPluginContext context, IPluginConfig config) { + public ResourceUploadPlugin(final IPluginContext context, IPluginConfig config) { super(context, config); // if the types config is not set, all extensions are allowed @@ -63,7 +67,7 @@ types = new ValueMap(typesConfig); } - add(form = new FileUploadForm("form")); + add(form = new FileUploadForm("form", context)); String mode = config.getString("mode", "edit"); form.setVisible("edit".equals(mode)); @@ -77,7 +81,7 @@ private FileUploadField fileUploadField; private FileUploadWidget widget; - public FileUploadForm(String name) { + public FileUploadForm(String name, final IPluginContext context) { super(name); FileUploadWidgetSettings settings = new FileUploadWidgetSettings(); @@ -90,7 +94,7 @@ @Override protected void onFileUpload(FileUpload fileUpload) { - handleUpload(fileUpload); + handleUpload(fileUpload, context); } }); @@ -104,7 +108,7 @@ } } - private void handleUpload(FileUpload upload) { + private void handleUpload(FileUpload upload, IPluginContext context) { String fileName = upload.getClientFileName(); String mimeType = upload.getContentType(); @@ -114,8 +118,8 @@ if (types != null && types.getString(extension.toLowerCase()) == null) { String extensions = StringUtils.join(types.keySet().toArray(), ", "); getDialogService().show( - new ExceptionDialog(new StringResourceModel("unrecognized", ResourceUploadPlugin.this, - null, new Object[]{extension, extensions}).getString()) { + new ExceptionDialog(new StringResourceModel("unrecognized", ResourceUploadPlugin.this, null, + new Object[] { extension, extensions }).getString()) { public IValueMap getProperties() { return SMALL; } @@ -126,10 +130,17 @@ JcrNodeModel nodeModel = (JcrNodeModel) ResourceUploadPlugin.this.getDefaultModel(); Node node = nodeModel.getNode(); try { - node.setProperty("jcr:mimeType", mimeType); - node.setProperty("jcr:data", upload.getInputStream()); - node.setProperty("jcr:lastModified", Calendar.getInstance()); + node.setProperty(JcrConstants.JCR_MIMETYPE, mimeType); + node.setProperty(JcrConstants.JCR_DATA, upload.getInputStream()); + node.setProperty(JcrConstants.JCR_LASTMODIFIED, Calendar.getInstance()); ResourceHelper.validateResource(node, fileName); + + AbstractGalleryProcessor processor = context.getService(getPluginConfig().getString("gallery.processor.id", + "gallery.processor.service"), AbstractGalleryProcessor.class); + if (processor != null) { + final InputStream nodeStream = node.getProperty(JcrConstants.JCR_DATA).getStream(); + processor.initGalleryResource(node, nodeStream, mimeType, fileName); + } } catch (RepositoryException ex) { error(ex); log.error(ex.getMessage()); Index: addon/gallery/common/src/main/java/org/hippoecm/repository/gallery/HippoGalleryNodeType.java =================================================================== --- addon/gallery/common/src/main/java/org/hippoecm/repository/gallery/HippoGalleryNodeType.java (revision 0) +++ addon/gallery/common/src/main/java/org/hippoecm/repository/gallery/HippoGalleryNodeType.java (revision 0) @@ -0,0 +1,19 @@ +package org.hippoecm.repository.gallery; + +public class HippoGalleryNodeType { + + public static final String IMAGE = "hippogallery:image"; + public static class Image { + public static final String WIDTH = "hippogallery:width"; + public static final String HEIGHT = "hippogallery:height"; + } + + public static final String IMAGE_SET = "hippogallery:imageset"; + public static class ImageSet { + public static final String FILE_NAME = "hippogallery:filename"; + public static final String DESCRIPTION = "hippogallery:description"; + public static final String THUMBNAIL = "hippogallery:thumbnail"; + public static final String ORIGINAL = "hippogallery:original"; + } + +} Property changes on: addon/gallery/common/src/main/java/org/hippoecm/repository/gallery/HippoGalleryNodeType.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Index: addon/gallery/frontend/pom.xml =================================================================== --- addon/gallery/frontend/pom.xml (revision 24258) +++ addon/gallery/frontend/pom.xml (working copy) @@ -1,12 +1,12 @@