@Override protected Blob getContentBlob(Blob original, DocumentModel doc) { MultiviewPicture multiviewPicture = doc.getAdapter(MultiviewPicture.class); if (multiviewPicture != null) { for (PictureView view : multiviewPicture.getViews()) { if (view.getTitle().equals("FullHD") && view.getBlob() != null) { return view.getBlob(); } } } return original; } }
public static Map<String, Object> viewToMap(PictureView view) { Map<String, Object> map = new HashMap<String, Object>(); map.put(PictureView.FIELD_TITLE, view.getTitle()); map.put(PictureView.FIELD_DESCRIPTION, view.getDescription()); map.put(PictureView.FIELD_TAG, view.getTag()); map.put(PictureView.FIELD_HEIGHT, view.getHeight()); map.put(PictureView.FIELD_WIDTH, view.getWidth()); map.put(PictureView.FIELD_FILENAME, view.getFilename()); Blob blob = view.getBlob(); if (blob != null) { map.put(PictureView.FIELD_CONTENT, blob); } map.put(FIELD_INFO, view.getImageInfo().toMap()); return map; }
@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(); }
@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(); }
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; }
@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); } }
@Override public List<RenditionDefinition> getRenditionDefinitions(DocumentModel doc) { MultiviewPicture multiviewPicture = doc.getAdapter(MultiviewPicture.class); if (multiviewPicture == null) { return Collections.emptyList(); } List<RenditionDefinition> renditionDefinitions = new ArrayList<>(); ImagingService imagingService = Framework.getService(ImagingService.class); MimetypeRegistry mimetypeRegistry = Framework.getService(MimetypeRegistry.class); for (PictureView pictureView : multiviewPicture.getViews()) { PictureConversion pictureConversion = imagingService.getPictureConversion(pictureView.getTitle()); if (pictureConversion != null && pictureConversion.isRendition()) { Blob blob = pictureView.getBlob(); if (blob != null) { RenditionDefinition renditionDefinition = new RenditionDefinition(); renditionDefinition.setEnabled(true); renditionDefinition.setName(pictureView.getTitle()); renditionDefinition.setKind(PICTURE_RENDITION_KIND); renditionDefinition.setProvider(new PictureRenditionProvider()); renditionDefinition.setVisible(pictureConversion.isRenditionVisible()); renditionDefinition.setLabel(pictureView.getTitle()); MimetypeEntry mimeType = mimetypeRegistry.getMimetypeEntryByMimeType(blob.getMimeType()); renditionDefinition.setIcon("/icons/" + mimeType.getIconPath()); renditionDefinitions.add(renditionDefinition); } } } return renditionDefinitions; }