@OperationMethod public Blob run(DocumentModel doc) { MultiviewPicture mvp = doc.getAdapter(MultiviewPicture.class); if (mvp == null) { return null; } if (viewName == null) { viewName = mvp.getOrigin(); } PictureView pv = mvp.getView(viewName); if (pv == null) { return null; } return pv.getBlob(); }
protected boolean migratePicture(CoreSession session, String docId) { DocumentModel picture = session.getDocument(new IdRef(docId)); if (log.isDebugEnabled()) { log.debug(String.format("Migrating %s", picture)); } MultiviewPicture multiviewPicture = picture.getAdapter(MultiviewPicture.class); PictureView originalView = multiviewPicture.getView(ORIGINAL_VIEW_TITLE); Blob blob = originalView.getBlob(); if (blob == null) { if (log.isWarnEnabled()) { log.warn(String.format("No Original view Blob found for %s", picture)); } return false; } String filename = blob.getFilename(); filename = StringUtils.defaultString(filename).replaceAll("^Original_", ""); blob.setFilename(filename); picture.setPropertyValue(FILE_CONTENT_PROPERTY, (Serializable) blob); multiviewPicture.removeView(ORIGINAL_VIEW_TITLE); if (picture.isVersion()) { picture.putContextData(ALLOW_VERSION_WRITE, Boolean.TRUE); } // disable quota if installed picture.putContextData(DISABLE_QUOTA_CHECK_LISTENER, Boolean.TRUE); session.saveDocument(picture); return true; }
@Override public Blob getThumbnail(DocumentModel doc, CoreSession session) { if (!doc.hasFacet("Picture")) { throw new NuxeoException("Document is not a picture"); } // Choose the nuxeo default thumbnail of the picture views if exists MultiviewPicture mViewPicture = doc.getAdapter(MultiviewPicture.class); PictureView thumbnailView = mViewPicture.getView("Small"); if (thumbnailView == null || thumbnailView.getBlob() == null) { // try thumbnail view thumbnailView = mViewPicture.getView("Thumbnail"); if (thumbnailView == null || thumbnailView.getBlob() == null) { TypeInfo docType = doc.getAdapter(TypeInfo.class); try { return Blobs.createBlob(FileUtils.getResourceFileFromContext("nuxeo.war" + File.separator + docType.getBigIcon())); } catch (IOException e) { throw new NuxeoException(e); } } } return thumbnailView.getBlob(); }
@OperationMethod public Blob run(DocumentModel doc) { Blob pictureBlob = null; MultiviewPicture mvp = doc.getAdapter(MultiviewPicture.class); if (mvp != null) { pictureBlob = mvp.getView(mvp.getOrigin()).getBlob(); } else { BlobHolder bh = doc.getAdapter(BlobHolder.class); if (bh != null) { pictureBlob = bh.getBlob(); } } if (pictureBlob == null) { Blob blob = Blobs.createBlob("Unable to find a picture in the Document"); blob.setFilename(doc.getName() + ".null"); return blob; } else { return run(pictureBlob); } }