@SuppressWarnings({ "null", "unused" }) @Override public final HtmlElement<?> build(@NotNull Media media) { HtmlElement<?> mediaElement = getImageElement(media); // set responsive image sources JSONArray sources = getResponsiveImageSources(media); setResponsiveImageSource(mediaElement, sources, media); // set additional attributes setAdditionalAttributes(mediaElement, media); // enable drag&drop for media source - if none is specified use first one defined in config MediaSource mediaSource = media.getMediaSource(); if (mediaSource == null && !mediaHandlerConfig.getSources().isEmpty()) { Class<? extends MediaSource> mediaSourceClass = mediaHandlerConfig.getSources().iterator().next(); mediaSource = AdaptTo.notNull(adaptable, mediaSourceClass); } if (mediaSource != null) { mediaSource.enableMediaDrop(mediaElement, media.getMediaRequest()); } return mediaElement; }
/** * Apply Markup for Drag&Drop mode and Diff decoration in WCM edit/preview mode. * @param mediaElement Media element * @param media Media */ protected void applyWcmMarkup(HtmlElement<?> mediaElement, Media media) { // further processing in edit or preview mode Resource resource = media.getMediaRequest().getResource(); if (mediaElement != null && resource != null && wcmMode != null) { switch (wcmMode) { case EDIT: // enable drag&drop from content finder media.getMediaSource().enableMediaDrop(mediaElement, media.getMediaRequest()); break; case PREVIEW: // enable drag&drop from content finder media.getMediaSource().enableMediaDrop(mediaElement, media.getMediaRequest()); // add diff decoration if (request != null) { String refProperty = StringUtils.defaultString(media.getMediaRequest().getRefProperty(), mediaHandlerConfig.getMediaRefProperty()); MediaMarkupBuilderUtil.addDiffDecoration(mediaElement, resource, refProperty, request, mediaHandlerConfig); } break; default: // do nothing } } }
@SuppressWarnings({ "null", "unused" }) @Override public HtmlElement<?> build(@NotNull Media media) { // Create dummy image element to be displayed in Edit mode as placeholder. Dimension dimension = MediaMarkupBuilderUtil.getMediaformatDimension(media); MediaArgs mediaArgs = media.getMediaRequest().getMediaArgs(); // create dummy image String dummyImageUrl = StringUtils.defaultString(mediaArgs.getDummyImageUrl(), DUMMY_IMAGE); dummyImageUrl = urlHandler.get(dummyImageUrl) .urlMode(media.getMediaRequest().getMediaArgs().getUrlMode()) .buildExternalResourceUrl(); Image image = new Image(dummyImageUrl, dimension.getWidth(), dimension.getHeight()) .addCssClass(MediaNameConstants.CSS_DUMMYIMAGE); // set additional attributes setAdditionalAttributes(image, media); // enable drag&drop for media source - if none is specified use first one defined in config MediaSource mediaSource = media.getMediaSource(); if (mediaSource == null && !mediaHandlerConfig.getSources().isEmpty()) { Class<? extends MediaSource> mediaSourceClass = mediaHandlerConfig.getSources().iterator().next(); mediaSource = AdaptTo.notNull(adaptable, mediaSourceClass); } if (mediaSource != null) { mediaSource.enableMediaDrop(image, media.getMediaRequest()); } return image; }