On 2/14/06, Xavier MOGHRABI <xavier.moghrabi(a)objectweb.org> wrote:
Hi XWiki developers,
I'm preparing a small plugin for thumbnails as explain in my previous mail.
The image is resized by adding a parameter heigth at this end of a download
URL (eg :xwiki/bin/download/Photos/Seychelles1999/DSC04010.JPG?height=550)
To call the plugin I need to add a piece of code in DownloadAction class.
Do you think :
- is it better to add the dependancy to the plugin in the DownloadAction class
such as :
// Sending the content of the attachment
- byte[] data = attachment.getContent(context);
+ byte[] data = null;
+
+ // Resize if imageplugin is on
+ ImagePlugin imageplugin = (ImagePlugin)
context.getWiki().getPlugin(
+ "image", context);
+ if ((request.getParameter("height") != null) &&
(imageplugin != null)) {
+ try {
+ int height =
Integer.parseInt(request.getParameter("height"));
+ data = imageplugin.createThumbnail(attachment,
height, context);
+ response.setContentType("image/png");
+ } catch (NumberFormatException e) {
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ if (data == null) data = attachment.getContent(context);
+
- or is it better to add a generic method in the plugin Interface class
(XWikiPluginInterface) with a method : startDownloading(byte[] data,
XWikiContext context) and to call it after in DownloadAction ?
Regards
Hi,
For me the second method is the best. I don't want the core of xwiki
depends on a plugin.
you can do something like this in the download action manager:
XWikiPluginManager plugins = xwiki.getPluginManager();
data = plugins.renderAttachment(byte[] data, XWikiContext context);
We also have to think about other binding points on xwiki for plugins.
Jérémi
--
Blog:
http://www.jeremi.info
LinkedIn:
https://www.linkedin.com/profile?viewProfile=&key=1437724
http://www.xwiki.org
skype: jeremi23 -- msn et gtalk : jeremi23(a)gmail.com