/* * MediathekView * Copyright (C) 2008 W. Xaver * W.Xaver[at]googlemail.com * http://zdfmediathk.sourceforge.net/ * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package mediathek.tool; import mediathek.config.MVConfig; import mSearch.tool.Listener; import java.awt.Desktop; import java.awt.Frame; import java.io.File; import javax.swing.JOptionPane; import mSearch.tool.Log; import mediathek.gui.GuiDownloads; import mediathek.gui.dialog.DialogProgrammOrdnerOeffnen; public class OpenPlayerAction { public static void filmAbspielen(Frame parent, String datei) { boolean gut = false; File sFile; if (datei.isEmpty()) { return; } sFile = new File(datei); if (!sFile.exists()) { MVMessageDialog.showMessageDialog(parent, "Film existiert noch nicht!", "Fehler", JOptionPane.ERROR_MESSAGE); return; } try { if (!MVConfig.get(MVConfig.Configs.SYSTEM_PLAYER_ABSPIELEN).isEmpty()) { String programm = MVConfig.get(MVConfig.Configs.SYSTEM_PLAYER_ABSPIELEN); String[] cmd = {programm, sFile.getAbsolutePath()}; Runtime.getRuntime().exec(cmd); gut = true; } else { if (Desktop.isDesktopSupported()) { Desktop d = Desktop.getDesktop(); if (d.isSupported(Desktop.Action.OPEN)) { d.open(sFile); gut = true; } } } } catch (Exception ex) { try { gut = false; String programm = ""; String text = "\n Ein Videoplayer zum Abspielen wird nicht gefunden.\n Videoplayer selbst auswählen."; DialogProgrammOrdnerOeffnen dialog = new DialogProgrammOrdnerOeffnen(parent, true, "", "Videoplayer suchen", text); dialog.setVisible(true); if (dialog.ok) { programm = dialog.ziel; } String[] cmd = {programm, sFile.getAbsolutePath()}; Runtime.getRuntime().exec(cmd); MVConfig.add(MVConfig.Configs.SYSTEM_PLAYER_ABSPIELEN, programm); Listener.notify(Listener.EREIGNIS_PROGRAMM_OEFFNEN, GuiDownloads.class.getSimpleName()); gut = true; } catch (Exception eex) { Log.errorLog(959632369, ex, "Ordner öffnen: " + datei); } } finally { if (!gut) { MVConfig.add(MVConfig.Configs.SYSTEM_PLAYER_ABSPIELEN, ""); Listener.notify(Listener.EREIGNIS_PROGRAMM_OEFFNEN, GuiDownloads.class.getSimpleName()); MVMessageDialog.showMessageDialog(parent, "Kann den Videoplayer nicht öffnen!", "Fehler", JOptionPane.ERROR_MESSAGE); } } } }