package org.jboss.seam.wiki.core.upload.handler;
import org.jboss.seam.wiki.core.model.WikiUploadImage;
import org.jboss.seam.wiki.core.upload.Uploader;
import org.jboss.seam.wiki.core.upload.editor.UploadEditor;
import org.jboss.seam.wiki.core.upload.editor.WikiUploadImageEditor;
import javax.swing.*;
public class WikiUploadImageHandler extends UploadHandler<WikiUploadImage> {
public UploadEditor<WikiUploadImage> createEditor(WikiUploadImage instance) {
try {
UploadEditor<WikiUploadImage> editor = WikiUploadImageEditor.class.newInstance();
editor.init(instance);
return editor;
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
protected WikiUploadImage createEntityInstance() {
try {
return WikiUploadImage.class.newInstance();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
public WikiUploadImage handleUpload(Uploader uploader) {
WikiUploadImage image = super.handleUpload(uploader);
marshallData(uploader, image);
return image;
}
public WikiUploadImage handleUpload(Uploader uploader, WikiUploadImage updateInstance) {
WikiUploadImage image = super.handleUpload(uploader, updateInstance);
marshallData(uploader, image);
return image;
}
private void marshallData(Uploader uploader, WikiUploadImage image) {
// Calculate image size
ImageIcon icon = new ImageIcon(image.getData());
int imageSizeX = icon.getImage().getWidth(null);
int imageSizeY = icon.getImage().getHeight(null);
image.setSizeX(imageSizeX);
image.setSizeY(imageSizeY);
}
}