package org.korsakow.ide.ui.controller.helper; import java.io.FileNotFoundException; import java.io.IOException; import org.dsrg.soenea.domain.MapperException; import org.korsakow.domain.MediaSource; import org.korsakow.domain.command.Request; import org.korsakow.domain.command.UpdateImageCommand; import org.korsakow.domain.command.UpdateSoundCommand; import org.korsakow.domain.command.UpdateTextCommand; import org.korsakow.domain.command.UpdateVideoCommand; import org.korsakow.domain.interf.IMedia; import org.korsakow.domain.interf.ISound; import org.korsakow.domain.interf.IText; import org.korsakow.domain.interf.IVideo; import org.korsakow.ide.ui.resources.ImageResourceView; import org.korsakow.ide.ui.resources.SoundResourceView; import org.korsakow.ide.ui.resources.TextResourceView; import org.korsakow.ide.ui.resources.VideoResourceView; import org.korsakow.ide.util.FileUtil; public class MediaHelper { public static void initView(ImageResourceView view, IMedia media) throws MapperException { view.setResourceId(media.getId()); view.setNameFieldText(media.getName()); view.setKeywords(media.getKeywords()); view.setFilename(media.getFilename()); view.repaint(); view.revalidate(); } public static void initView(SoundResourceView view, ISound media) throws MapperException { view.setResourceId(media.getId()); view.setNameFieldText(media.getName()); view.setKeywords(media.getKeywords()); view.setFilename(media.getFilename()); view.setSubtitles(media.getSubtitles()); view.repaint(); view.revalidate(); } public static void initView(TextResourceView view, IText media) throws MapperException, FileNotFoundException, IOException { view.setResourceId(media.getId()); view.setNameFieldText(media.getName()); view.setKeywords(media.getKeywords()); view.setSource(media.getSource()); switch (media.getSource()) { case INLINE: view.setText(media.getText()); view.setFilenameVisible(false); break; case FILE: view.setFilename(media.getFilename()); String content = FileUtil.readFileAsString(media.getAbsoluteFilename()); view.setText(content); break; } view.repaint(); view.revalidate(); } public static void initView(VideoResourceView view, IVideo media) throws MapperException { view.setResourceId(media.getId()); view.setNameFieldText(media.getName()); view.setKeywords(media.getKeywords()); view.setFilename(media.getFilename()); view.setSubtitles(media.getSubtitles()); view.repaint(); view.revalidate(); } public static Request createRequest(SoundResourceView view, Long id) { Request request = new Request(); request.set(UpdateSoundCommand.ID, id); request.set(UpdateSoundCommand.NAME, view.getNameFieldText().trim()); request.set(UpdateSoundCommand.KEYWORDS, view.getKeywords()); request.set(UpdateSoundCommand.FILENAME, view.getFilename()); request.set(UpdateSoundCommand.SUBTITLES, view.getSubtitles().length()>0?view.getSubtitles():null); return request; } public static Request createRequest(ImageResourceView view, Long id) { Request request = new Request(); request.set(UpdateImageCommand.ID, id); request.set(UpdateImageCommand.NAME, view.getNameFieldText().trim()); request.set(UpdateImageCommand.KEYWORDS, view.getKeywords()); request.set(UpdateImageCommand.FILENAME, view.getFilename()); request.set(UpdateImageCommand.DURATION, view.getDuration()); return request; } public static Request createRequest(TextResourceView view, Long id) { Request request = new Request(); request.set(UpdateTextCommand.ID, id); request.set(UpdateTextCommand.NAME, view.getNameFieldText().trim()); request.set(UpdateTextCommand.KEYWORDS, view.getKeywords()); request.set(UpdateTextCommand.SOURCE, ((MediaSource)view.getSource()).getId()); request.set(UpdateTextCommand.TEXTCONTENT, view.getText()); switch ((MediaSource)view.getSource()) { case INLINE: break; case FILE: request.set(UpdateTextCommand.FILENAME, view.getFilename()); break; } return request; } public static Request createRequest(VideoResourceView view, Long id) { Request request = new Request(); request.set(UpdateVideoCommand.ID, id); request.set(UpdateVideoCommand.NAME, view.getNameFieldText().trim()); request.set(UpdateVideoCommand.KEYWORDS, view.getKeywords()); request.set(UpdateVideoCommand.FILENAME, view.getFilename()); request.set(UpdateVideoCommand.SUBTITLES, view.getSubtitles().length()>0?view.getSubtitles():null); return request; } }