1 package org.collectionspace.services.nuxeo.extension.thumbnail;
3 import org.nuxeo.ecm.core.api.Blob;
4 import org.nuxeo.ecm.core.api.ClientException;
5 import org.nuxeo.ecm.core.api.DocumentModel;
6 import org.nuxeo.ecm.core.api.blobholder.BlobHolder;
7 import org.nuxeo.ecm.core.api.event.DocumentEventTypes;
8 import org.nuxeo.ecm.core.event.Event;
9 import org.nuxeo.ecm.core.event.EventContext;
10 import org.nuxeo.ecm.core.event.EventListener;
11 import org.nuxeo.ecm.core.event.impl.DocumentEventContext;
13 public class UpdateThumbListener implements EventListener {
15 public void handleEvent(Event event) throws ClientException {
16 EventContext ec = event.getContext();
17 if (ec instanceof DocumentEventContext) {
18 DocumentEventContext context = (DocumentEventContext) ec;
19 DocumentModel doc = context.getSourceDocument();
20 if (doc.isDirty() || DocumentEventTypes.DOCUMENT_CREATED.equals(event.getName())) {
21 BlobHolder blobHolder = doc.getAdapter(BlobHolder.class);
22 if (blobHolder != null) {
23 Blob blob = blobHolder.getBlob();
26 AddThumbnailUnrestricted runner = new AddThumbnailUnrestricted(
27 context.getCoreSession(), doc, blobHolder);
28 runner.runUnrestricted();
30 } catch (Exception e) {
31 throw new RuntimeException(e);
35 // No Blob anymore, remove the facet
36 if (doc.hasFacet(ThumbnailConstants.THUMBNAIL_FACET)) {
37 doc.removeFacet(ThumbnailConstants.THUMBNAIL_FACET);
38 context.getCoreSession().saveDocument(doc);