package comeon.ui.media; import com.google.common.io.Resources; import comeon.model.Media; import comeon.ui.UI; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.IOException; public final class MediaPanels { private static final Logger LOGGER = LoggerFactory.getLogger(MediaPanels.class); private final Media media; private BufferedImage thumbnail; private final MediaPreviewPanel previewPanel; private final MediaEditPanel editPanel; public MediaPanels(final Media media) { this.media = media; try (final ByteArrayInputStream input = new ByteArrayInputStream(media.getThumbnail())) { final BufferedImage mediaThumbnail = ImageIO.read(input); if (mediaThumbnail == null) { this.thumbnail = ImageIO.read(Resources.getResource("comeon/ui/default_thumbnail.png")); } else { this.thumbnail = mediaThumbnail; } } catch (final IOException e) { LOGGER.warn("Can't load media thumbnail {}", media.getFileName(), e); } this.previewPanel = new MediaPreviewPanel(this, ConstrainedAxis.VERTICAL.getPreviewPanelDimension(thumbnail, UI.PREVIEW_PANEL_HEIGHT), 2, 4); this.editPanel = new MediaEditPanel(this); } Media getMedia() { return media; } BufferedImage getThumbnail() { return thumbnail; } public MediaPreviewPanel getPreviewPanel() { return previewPanel; } public MediaEditPanel getEditPanel() { return editPanel; } }