/* * 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.daten; import mediathek.config.Daten; import static mediathek.controller.starter.RuntimeExec.TRENNER_PROG_ARRAY; import mediathek.tool.GuiFunktionenProgramme; public class DatenProg extends MVData<DatenProg> { public static final int PROGRAMM_NAME = 0; public static final int PROGRAMM_ZIEL_DATEINAME = 1; public static final int PROGRAMM_PROGRAMMPFAD = 2; public static final int PROGRAMM_SCHALTER = 3; public static final int PROGRAMM_PRAEFIX = 4; public static final int PROGRAMM_SUFFIX = 5; public static final int PROGRAMM_RESTART = 6; public static final int PROGRAMM_DOWNLOADMANAGER = 7; public static final int MAX_ELEM = 8; public static final String TAG = "Programm"; public static final String[] COLUMN_NAMES = {"Beschreibung", "Zieldateiname", "Programm", "Schalter", "Präfix", "Suffix", "Restart", "Downloadmanager"}; public static final String[] XML_NAMES = {"Programmname", "Zieldateiname", "Programmpfad", "Programmschalter", "Praefix", "Suffix", "Restart", "Downloadmanager"}; public static boolean[] spaltenAnzeigen = new boolean[MAX_ELEM]; public String[] arr; public DatenProg() { makeArr(); arr[PROGRAMM_RESTART] = Boolean.toString(false); arr[PROGRAMM_DOWNLOADMANAGER] = Boolean.toString(false); } public DatenProg(String name, String programmpfad, String schalter, String restart, String downloadmanager) { makeArr(); arr[PROGRAMM_NAME] = name; arr[PROGRAMM_PROGRAMMPFAD] = programmpfad; arr[PROGRAMM_SCHALTER] = schalter; arr[PROGRAMM_RESTART] = restart.equals("") ? Boolean.toString(false) : restart; arr[PROGRAMM_DOWNLOADMANAGER] = downloadmanager.equals("") ? Boolean.toString(false) : downloadmanager; } public DatenProg copy() { DatenProg ret = new DatenProg(); System.arraycopy(this.arr, 0, ret.arr, 0, arr.length); return ret; } public boolean isRestart() { if (arr[PROGRAMM_RESTART].equals("")) { return false; } return Boolean.parseBoolean(arr[PROGRAMM_RESTART]); } public boolean isDownloadManager() { if (arr[PROGRAMM_DOWNLOADMANAGER].equals("")) { return false; } return Boolean.parseBoolean(arr[PROGRAMM_DOWNLOADMANAGER]); } public boolean urlTesten(String url) { //prüfen ob das Programm zur Url passt boolean ret = false; if (url != null) { //Felder sind entweder leer oder passen if (GuiFunktionenProgramme.praefixTesten(this.arr[PROGRAMM_PRAEFIX], url, true) && GuiFunktionenProgramme.praefixTesten(this.arr[PROGRAMM_SUFFIX], url, false)) { ret = true; } } return ret; } public String getProgrammAufruf() { return arr[PROGRAMM_PROGRAMMPFAD] + " " + arr[PROGRAMM_SCHALTER]; } public String getProgrammAufrufArray() { String ret; ret = arr[DatenProg.PROGRAMM_PROGRAMMPFAD]; String[] ar = arr[DatenProg.PROGRAMM_SCHALTER].split(" "); for (String s : ar) { ret = ret + TRENNER_PROG_ARRAY + s; } return ret; } public static String makeProgAufrufArray(String pArray) { String[] progArray = pArray.split(TRENNER_PROG_ARRAY); String execStr = ""; for (String s : progArray) { execStr = execStr + s + " "; } execStr = execStr.trim(); // letztes Leerzeichen wieder entfernen return execStr; } @Override public String toString() { String ret = ""; for (int i = 0; i < MAX_ELEM; ++i) { if (i == 0) { ret += "| ***|" + COLUMN_NAMES[i] + ": " + arr[i] + Daten.LINE_SEPARATOR; } else { ret += "| |" + COLUMN_NAMES[i] + ": " + arr[i] + Daten.LINE_SEPARATOR; } } return ret; } //=================================== // Private //=================================== private void makeArr() { arr = new String[MAX_ELEM]; for (int i = 0; i < arr.length; ++i) { arr[i] = ""; } } }