/*
* 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.gui.dialog;
import mSearch.daten.DatenFilm;
import mSearch.tool.Log;
import mSearch.tool.SysMsg;
import mediathek.config.Icons;
import mediathek.controller.starter.Start;
import mediathek.daten.DatenDownload;
import mediathek.daten.DatenProg;
import mediathek.file.GetFile;
import mediathek.tool.EscBeenden;
import mediathek.tool.MVMessageDialog;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
@SuppressWarnings("serial")
public class DialogEditDownload extends JDialog {
private final DatenDownload datenDownload;
public boolean ok = false;
private final JTextField[] textfeldListe = new JTextField[DatenDownload.MAX_ELEM];
private final JLabel[] labelListe = new JLabel[DatenDownload.MAX_ELEM];
private final JCheckBox jCheckBoxRestart = new JCheckBox();
private final JCheckBox jCheckBoxDownloadmanager = new JCheckBox();
private final JCheckBox jCheckBoxUnterbrochen = new JCheckBox();
private final JCheckBox jCheckBoxInfodatei = new JCheckBox();
private final JCheckBox jCheckBoxSubtitle = new JCheckBox();
private final JCheckBox jCheckBoxSpotlight = new JCheckBox();
private final MVPanelDownloadZiel mVPanelDownloadZiel;
private final boolean gestartet;
private String dateiGroesse_HD = "";
private String dateiGroesse_Hoch = "";
private String dateiGroesse_Klein = "";
private JFrame parent = null;
private String orgProgArray = "";
private String resolution = DatenFilm.AUFLOESUNG_NORMAL;
private final JLabel jLabelFilmHD = new JLabel();
private final JLabel jLabelFilmUT = new JLabel();
private static ImageIcon ja_sw_16 = null;
public DialogEditDownload(JFrame parent, boolean modal, DatenDownload ddownload, boolean ggestartet) {
super(parent, modal);
initComponents();
this.parent = parent;
datenDownload = ddownload;
gestartet = ggestartet;
jScrollPane1.getVerticalScrollBar().setUnitIncrement(16);
ja_sw_16 = Icons.ICON_DIALOG_EIN_SW;
orgProgArray = datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY];
mVPanelDownloadZiel = new MVPanelDownloadZiel(parent, datenDownload, false);
mVPanelDownloadZiel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(204, 204, 204)));
jRadioButtonResHd.addActionListener(e -> changeRes());
jRadioButtonResHi.addActionListener(e -> changeRes());
jRadioButtonResLo.addActionListener(e -> changeRes());
jButtonOk.addActionListener(e -> {
if (check()) {
beenden();
}
});
jButtonAbbrechen.addActionListener(e -> beenden());
getRootPane().setDefaultButton(jButtonOk);
new EscBeenden(this) {
@Override
public void beenden_() {
beenden();
}
};
setupResolutionButtons();
setExtra();
}
private void setupResolutionButtons() {
jRadioButtonResHd.setEnabled(false);
jRadioButtonResHi.setEnabled(false);
jRadioButtonResLo.setEnabled(false);
if (datenDownload.art != DatenDownload.ART_DOWNLOAD && datenDownload.pSet == null) {
// ansonsten müsste erst der Programmaufruf neu gebaut werden
jPanelRes.setVisible(false);
return;
}
if (datenDownload.film != null) {
jRadioButtonResHi.setEnabled(!gestartet);
jRadioButtonResHi.setSelected(datenDownload.arr[DatenDownload.DOWNLOAD_URL].equals(datenDownload.film.getUrlFuerAufloesung(DatenFilm.AUFLOESUNG_NORMAL)));
dateiGroesse_Hoch = datenDownload.film.getDateigroesse(datenDownload.film.getUrlFuerAufloesung(DatenFilm.AUFLOESUNG_NORMAL));
if (!dateiGroesse_Hoch.isEmpty()) {
jRadioButtonResHi.setText(jRadioButtonResHi.getText() + " [ " + dateiGroesse_Hoch + " MB ]");
}
if (!datenDownload.film.arr[DatenFilm.FILM_URL_HD].isEmpty()) {
jRadioButtonResHd.setEnabled(!gestartet);
jRadioButtonResHd.setSelected(datenDownload.arr[DatenDownload.DOWNLOAD_URL].equals(datenDownload.film.getUrlFuerAufloesung(DatenFilm.AUFLOESUNG_HD)));
dateiGroesse_HD = datenDownload.film.getDateigroesse(datenDownload.film.getUrlFuerAufloesung(DatenFilm.AUFLOESUNG_HD));
if (!dateiGroesse_HD.isEmpty()) {
jRadioButtonResHd.setText(jRadioButtonResHd.getText() + " [ " + dateiGroesse_HD + " MB ]");
}
}
if (!datenDownload.film.arr[DatenFilm.FILM_URL_KLEIN].isEmpty()) {
jRadioButtonResLo.setEnabled(!gestartet);
jRadioButtonResLo.setSelected(datenDownload.arr[DatenDownload.DOWNLOAD_URL].equals(datenDownload.film.getUrlFuerAufloesung(DatenFilm.AUFLOESUNG_KLEIN)));
dateiGroesse_Klein = datenDownload.film.getDateigroesse(datenDownload.film.getUrlFuerAufloesung(DatenFilm.AUFLOESUNG_KLEIN));
if (!dateiGroesse_Klein.isEmpty()) {
jRadioButtonResLo.setText(jRadioButtonResLo.getText() + " [ " + dateiGroesse_Klein + " MB ]");
}
}
}
if (jRadioButtonResHd.isSelected()) {
resolution = DatenFilm.AUFLOESUNG_HD;
} else if (jRadioButtonResLo.isSelected()) {
resolution = DatenFilm.AUFLOESUNG_KLEIN;
} else {
resolution = DatenFilm.AUFLOESUNG_NORMAL;
}
}
private void changeRes() {
// RadioButton sind nur enabled wenn "datenDownload.film" vorhanden
final String res;
if (jRadioButtonResHd.isSelected()) {
res = DatenFilm.AUFLOESUNG_HD;
} else if (jRadioButtonResLo.isSelected()) {
res = DatenFilm.AUFLOESUNG_KLEIN;
} else {
res = DatenFilm.AUFLOESUNG_NORMAL;
}
datenDownload.arr[DatenDownload.DOWNLOAD_URL] = datenDownload.film.getUrlFuerAufloesung(res);
datenDownload.arr[DatenDownload.DOWNLOAD_URL_RTMP] = datenDownload.film.getUrlRtmpFuerAufloesung(res);
textfeldListe[DatenDownload.DOWNLOAD_URL].setText(datenDownload.arr[DatenDownload.DOWNLOAD_URL]);
textfeldListe[DatenDownload.DOWNLOAD_URL_RTMP].setText(datenDownload.arr[DatenDownload.DOWNLOAD_URL_RTMP]);
final String size;
if (jRadioButtonResHd.isSelected()) {
size = dateiGroesse_HD;
} else if (jRadioButtonResLo.isSelected()) {
size = dateiGroesse_Klein;
} else {
size = dateiGroesse_Hoch;
}
if (datenDownload.art == DatenDownload.ART_PROGRAMM && datenDownload.pSet != null) {
// muss noch der Programmaufruf neu gebaut werden
DatenDownload d = new DatenDownload(datenDownload.pSet, datenDownload.film, datenDownload.quelle, datenDownload.abo,
datenDownload.arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME],
datenDownload.arr[DatenDownload.DOWNLOAD_ZIEL_PFAD], res);
datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF] = d.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF];
datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY] = d.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY];
textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF].setText(datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF]);
textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY].setText(datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY]);
}
datenDownload.setGroesse(size);
}
private void setExtra() {
jPanelExtra.removeAll();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.insets = new Insets(5, 10, 10, 5);
jPanelExtra.setLayout(gridbag);
int zeile = 0;
for (int i = 0; i < DatenDownload.MAX_ELEM; ++i) {
JLabel label = new JLabel(" " + DatenDownload.COLUMN_NAMES[i] + ": ");
labelListe[i] = label;
JTextField textfeld = new JTextField();
textfeld.setEditable(false);
textfeld.setText(datenDownload.arr[i]);
textfeldListe[i] = textfeld;
addExtraFeld(i, gridbag, c);
++zeile;
c.gridy = zeile;
}
jPanelExtra.validate();
}
private void addExtraFeld(int i, GridBagLayout gridbag, GridBagConstraints c) {
//Label
c.gridx = 0;
c.weightx = 0;
if (i == DatenDownload.DOWNLOAD_ZURUECKGESTELLT
|| i == DatenDownload.DOWNLOAD_URL_RTMP
|| i == DatenDownload.DOWNLOAD_BUTTON_DEL || i == DatenDownload.DOWNLOAD_BUTTON_START
|| i == DatenDownload.DOWNLOAD_REF
|| i == DatenDownload.DOWNLOAD_BANDBREITE) {
// ist eigentlich Unsinn, es anzuzeigen
return;
}
if (datenDownload.art == DatenDownload.ART_DOWNLOAD
&& (i == DatenDownload.DOWNLOAD_ZIEL_DATEINAME
|| i == DatenDownload.DOWNLOAD_ZIEL_PFAD_DATEINAME
|| i == DatenDownload.DOWNLOAD_ZIEL_PFAD)
&& !gestartet) {
// Downloadpfad anpassen
if (i == DatenDownload.DOWNLOAD_ZIEL_DATEINAME) {
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(mVPanelDownloadZiel, c);
jPanelExtra.add(mVPanelDownloadZiel);
}
} else {
switch (i) {
case DatenDownload.DOWNLOAD_PROGRAMM_RESTART:
labelListe[i].setForeground(Color.BLUE);
jCheckBoxRestart.setSelected(datenDownload.isRestart());
jCheckBoxRestart.addActionListener(new BeobCheckbox());
jCheckBoxRestart.setEnabled(!gestartet);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jCheckBoxRestart, c);
jPanelExtra.add(jCheckBoxRestart);
if (datenDownload.isDownloadManager()) {
jCheckBoxRestart.setEnabled(false);
}
break;
case DatenDownload.DOWNLOAD_PROGRAMM_DOWNLOADMANAGER:
jCheckBoxDownloadmanager.setSelected(datenDownload.isDownloadManager());
// jCheckBoxRestart.addActionListener(new BeobCheckbox());
jCheckBoxDownloadmanager.setEnabled(false);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jCheckBoxDownloadmanager, c);
jPanelExtra.add(jCheckBoxDownloadmanager);
break;
case DatenDownload.DOWNLOAD_UNTERBROCHEN:
// das macht nur Sinn, wenn der Download unterbrochen ist um "es" auszuschalten
// Unterbrechung einschalten macht keinen Sinn
if (!datenDownload.isInterrupted()) {
return;
}
labelListe[i].setForeground(Color.BLUE);
jCheckBoxUnterbrochen.setSelected(datenDownload.isInterrupted());
jCheckBoxUnterbrochen.addActionListener(new BeobCheckbox());
jCheckBoxUnterbrochen.setEnabled(!gestartet);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jCheckBoxUnterbrochen, c);
jPanelExtra.add(jCheckBoxUnterbrochen);
break;
case DatenDownload.DOWNLOAD_INFODATEI:
labelListe[i].setForeground(Color.BLUE);
jCheckBoxInfodatei.setSelected(Boolean.parseBoolean(datenDownload.arr[DatenDownload.DOWNLOAD_INFODATEI]));
jCheckBoxInfodatei.addActionListener(new BeobCheckbox());
jCheckBoxInfodatei.setEnabled(!gestartet);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jCheckBoxInfodatei, c);
jPanelExtra.add(jCheckBoxInfodatei);
break;
case DatenDownload.DOWNLOAD_SUBTITLE:
labelListe[i].setForeground(Color.BLUE);
jCheckBoxSubtitle.setSelected(Boolean.parseBoolean(datenDownload.arr[DatenDownload.DOWNLOAD_SUBTITLE]));
jCheckBoxSubtitle.addActionListener(new BeobCheckbox());
jCheckBoxSubtitle.setEnabled(!gestartet);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jCheckBoxSubtitle, c);
jPanelExtra.add(jCheckBoxSubtitle);
break;
case DatenDownload.DOWNLOAD_SPOTLIGHT:
labelListe[i].setForeground(Color.BLUE);
jCheckBoxSpotlight.setSelected(Boolean.parseBoolean(datenDownload.arr[DatenDownload.DOWNLOAD_SPOTLIGHT]));
jCheckBoxSpotlight.addActionListener(new BeobCheckbox());
jCheckBoxSpotlight.setEnabled(!gestartet);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jCheckBoxSpotlight, c);
jPanelExtra.add(jCheckBoxSpotlight);
break;
case DatenDownload.DOWNLOAD_HD:
jLabelFilmHD.setOpaque(false);
jLabelFilmHD.setIcon(ja_sw_16);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jLabelFilmHD, c);
jPanelExtra.add(jLabelFilmHD);
if (datenDownload.film != null) {
jLabelFilmHD.setVisible(datenDownload.film.isHD());
} else {
jLabelFilmHD.setVisible(false);
}
break;
case DatenDownload.DOWNLOAD_UT:
jLabelFilmUT.setOpaque(false);
jLabelFilmUT.setIcon(ja_sw_16);
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jLabelFilmUT, c);
jPanelExtra.add(jLabelFilmUT);
if (datenDownload.film != null) {
jLabelFilmUT.setVisible(datenDownload.film.hasUT());
} else {
jLabelFilmUT.setVisible(false);
}
break;
case DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF:
break;
case DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY:
if (datenDownload.art == DatenDownload.ART_PROGRAMM) {
// nur bei Downloads über ein Programm
if (datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY].isEmpty()) {
// Aufruf über Array ist leer -> Win, Mac
labelListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY].setForeground(Color.BLUE);
textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF].setEditable(!gestartet);// und wenn noch nicht gestartet
textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF].getDocument().addDocumentListener(new BeobachterDocumentTextfeld(DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF));
gridbag.setConstraints(labelListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY], c);
jPanelExtra.add(labelListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF], c);
jPanelExtra.add(textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF]);
} else {
// dann ist ein Array vorhanden -> Linux
labelListe[i].setForeground(Color.BLUE);
textfeldListe[i].setEditable(!gestartet);// und wenn noch nicht gestartet
textfeldListe[i].getDocument().addDocumentListener(new BeobachterDocumentTextfeld(i));
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
JPanel jp = new JPanel();
jp.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
GridBagLayout gb = new GridBagLayout();
GridBagConstraints gc = new GridBagConstraints();
gc.fill = GridBagConstraints.HORIZONTAL;
gc.insets = new Insets(2, 2, 2, 2);
jp.setLayout(gb);
JButton jButtonReset = new JButton("");
jButtonReset.setToolTipText("Reset");
jButtonReset.setIcon(Icons.ICON_BUTTON_AKTUALISIEREN);
jButtonReset.addActionListener(e -> textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY].setText(orgProgArray));
JButton jButtonHelp = new JButton("");
jButtonHelp.setIcon(Icons.ICON_BUTTON_HELP);
jButtonHelp.setToolTipText("Hilfe anzeigen");
jButtonHelp.addActionListener(e -> new DialogHilfe(parent, true, new GetFile().getHilfeSuchen(GetFile.PFAD_HILFETEXT_EDIT_DOWNLOAD_PROG)).setVisible(true));
gc.gridy = 0;
gc.gridx = 0;
gc.weightx = 1;
gb.setConstraints(jButtonHelp, gc);
jp.add(jButtonHelp);
gc.gridx = 1;
gc.weightx = 10;
gb.setConstraints(textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF], gc);
jp.add(textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF]);
gc.gridy = 1;
gc.gridx = 0;
gc.weightx = 1;
gb.setConstraints(jButtonReset, gc);
jp.add(jButtonReset);
gc.gridx = 1;
gc.weightx = 10;
gb.setConstraints(textfeldListe[i], gc);
jp.add(textfeldListe[i]);
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(jp, c);
jPanelExtra.add(jp);
}
}
break;
default:
switch (i) {
case DatenDownload.DOWNLOAD_NR:
textfeldListe[i].setText(datenDownload.nr + "");
break;
case DatenDownload.DOWNLOAD_FILM_NR:
if (datenDownload.film != null) {
textfeldListe[i].setText(datenDownload.film.nr + "");
}
break;
case DatenDownload.DOWNLOAD_URL:
if (datenDownload.art == DatenDownload.ART_DOWNLOAD) {
// nur bei direkten Downloads
labelListe[i].setForeground(Color.BLUE);
textfeldListe[i].setEditable(!gestartet);// und wenn noch nicht gestartet
textfeldListe[i].getDocument().addDocumentListener(new BeobachterDocumentTextfeld(i));
}
break;
case DatenDownload.DOWNLOAD_GROESSE:
textfeldListe[i].setText(datenDownload.mVFilmSize.toString());
break;
case DatenDownload.DOWNLOAD_PROGRESS:
textfeldListe[i].setText(Start.getTextProgress(datenDownload.isDownloadManager(), datenDownload.start));
break;
case DatenDownload.DOWNLOAD_RESTZEIT:
textfeldListe[i].setText(datenDownload.getTextRestzeit());
break;
case DatenDownload.DOWNLOAD_ART:
switch (datenDownload.art) {
case DatenDownload.ART_DOWNLOAD:
textfeldListe[i].setText(DatenDownload.ART_DOWNLOAD_TXT);
break;
case DatenDownload.ART_PROGRAMM:
textfeldListe[i].setText(DatenDownload.ART_PROGRAMM_TXT);
break;
}
break;
case DatenDownload.DOWNLOAD_QUELLE:
switch (datenDownload.quelle) {
case DatenDownload.QUELLE_ALLE:
textfeldListe[i].setText(DatenDownload.QUELLE_ALLE_TXT);
break;
case DatenDownload.QUELLE_ABO:
textfeldListe[i].setText(DatenDownload.QUELLE_ABO_TXT);
break;
case DatenDownload.QUELLE_BUTTON:
textfeldListe[i].setText(DatenDownload.QUELLE_BUTTON_TXT);
break;
case DatenDownload.QUELLE_DOWNLOAD:
textfeldListe[i].setText(DatenDownload.QUELLE_DOWNLOAD_TXT);
break;
}
break;
default:
break;
}
gridbag.setConstraints(labelListe[i], c);
jPanelExtra.add(labelListe[i]);
//Textfeld
c.gridx = 1;
c.weightx = 10;
gridbag.setConstraints(textfeldListe[i], c);
jPanelExtra.add(textfeldListe[i]);
break;
}
}
}
private boolean downloadDateiLoeschen(DatenDownload datenDownload) {
try {
File file = new File(datenDownload.arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_DATEINAME]);
if (!file.exists()) {
return true; // gibt nichts zu löschen
}
int ret = JOptionPane.showConfirmDialog(parent,
"Die Auflösung wurde geändert, der Film kann nicht weitergeführt werden.\n"
+ "Datei muss zuerst gelöscht werden.", "Film Löschen?", JOptionPane.YES_NO_OPTION);
if (ret != JOptionPane.OK_OPTION) {
return false; // user will nicht
}
// und jetzt die Datei löschen
SysMsg.sysMsg(new String[]{"Datei löschen: ", file.getAbsolutePath()});
if (!file.delete()) {
throw new Exception();
}
} catch (Exception ex) {
MVMessageDialog.showMessageDialog(parent, "Konnte die Datei nicht löschen!", "Film löschen", JOptionPane.ERROR_MESSAGE);
Log.errorLog(812036789, "Fehler beim löschen: " + datenDownload.arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_DATEINAME]);
}
return true;
}
private boolean check() {
mVPanelDownloadZiel.setPfadName_geaendert();
if ((jRadioButtonResHd.isSelected() && !resolution.equals(DatenFilm.AUFLOESUNG_HD))
|| (jRadioButtonResLo.isSelected() && !resolution.equals(DatenFilm.AUFLOESUNG_KLEIN))
|| (jRadioButtonResHi.isSelected() && !resolution.equals(DatenFilm.AUFLOESUNG_NORMAL))) {
// dann wurde die Auflösung geändert -> Film kann nicht weitergeführt werden
ok = downloadDateiLoeschen(datenDownload);
} else {
ok = true;
}
return ok;
}
private void beenden() {
this.dispose();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
javax.swing.ButtonGroup buttonGroup1 = new javax.swing.ButtonGroup();
jScrollPane1 = new javax.swing.JScrollPane();
jPanelExtra = new javax.swing.JPanel();
jButtonOk = new javax.swing.JButton();
jButtonAbbrechen = new javax.swing.JButton();
jPanelRes = new javax.swing.JPanel();
javax.swing.JLabel jLabelRes = new javax.swing.JLabel();
jRadioButtonResHd = new javax.swing.JRadioButton();
jRadioButtonResHi = new javax.swing.JRadioButton();
jRadioButtonResLo = new javax.swing.JRadioButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Download editieren");
setMinimumSize(new java.awt.Dimension(500, 0));
javax.swing.GroupLayout jPanelExtraLayout = new javax.swing.GroupLayout(jPanelExtra);
jPanelExtra.setLayout(jPanelExtraLayout);
jPanelExtraLayout.setHorizontalGroup(
jPanelExtraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jPanelExtraLayout.setVerticalGroup(
jPanelExtraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
jScrollPane1.setViewportView(jPanelExtra);
jButtonOk.setText("Ok");
jButtonAbbrechen.setText("Abbrechen");
jPanelRes.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
jLabelRes.setText("Auflösung ändern:");
buttonGroup1.add(jRadioButtonResHd);
jRadioButtonResHd.setText("HD");
buttonGroup1.add(jRadioButtonResHi);
jRadioButtonResHi.setText("hoher Auflösung");
buttonGroup1.add(jRadioButtonResLo);
jRadioButtonResLo.setText("niedriger Auflösung");
javax.swing.GroupLayout jPanelResLayout = new javax.swing.GroupLayout(jPanelRes);
jPanelRes.setLayout(jPanelResLayout);
jPanelResLayout.setHorizontalGroup(
jPanelResLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelResLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabelRes)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jRadioButtonResHd)
.addGap(18, 18, 18)
.addComponent(jRadioButtonResHi)
.addGap(18, 18, 18)
.addComponent(jRadioButtonResLo)
.addContainerGap(237, Short.MAX_VALUE))
);
jPanelResLayout.setVerticalGroup(
jPanelResLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelResLayout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanelResLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelRes)
.addComponent(jRadioButtonResHd)
.addComponent(jRadioButtonResHi)
.addComponent(jRadioButtonResLo))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanelRes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(jButtonOk, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButtonAbbrechen)))
.addContainerGap())
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jButtonAbbrechen, jButtonOk});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 577, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanelRes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonOk)
.addComponent(jButtonAbbrechen))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonAbbrechen;
private javax.swing.JButton jButtonOk;
private javax.swing.JPanel jPanelExtra;
private javax.swing.JPanel jPanelRes;
private javax.swing.JRadioButton jRadioButtonResHd;
private javax.swing.JRadioButton jRadioButtonResHi;
private javax.swing.JRadioButton jRadioButtonResLo;
private javax.swing.JScrollPane jScrollPane1;
// End of variables declaration//GEN-END:variables
private class BeobachterDocumentTextfeld implements DocumentListener {
int nr;
public BeobachterDocumentTextfeld(int n) {
nr = n;
}
@Override
public void insertUpdate(DocumentEvent arg0) {
eingabe();
}
@Override
public void removeUpdate(DocumentEvent arg0) {
eingabe();
}
@Override
public void changedUpdate(DocumentEvent arg0) {
eingabe();
}
private void eingabe() {
datenDownload.arr[nr] = textfeldListe[nr].getText().trim();
if (nr == DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY) {
datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF] = DatenProg.makeProgAufrufArray(datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF_ARRAY]);
textfeldListe[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF].setText(datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_AUFRUF]);
}
}
}
private class BeobCheckbox implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
datenDownload.arr[DatenDownload.DOWNLOAD_PROGRAMM_RESTART] = Boolean.toString(jCheckBoxRestart.isSelected());
datenDownload.arr[DatenDownload.DOWNLOAD_UNTERBROCHEN] = Boolean.toString(jCheckBoxUnterbrochen.isSelected());
datenDownload.arr[DatenDownload.DOWNLOAD_INFODATEI] = Boolean.toString(jCheckBoxInfodatei.isSelected());
datenDownload.arr[DatenDownload.DOWNLOAD_SUBTITLE] = Boolean.toString(jCheckBoxSubtitle.isSelected());
datenDownload.arr[DatenDownload.DOWNLOAD_SPOTLIGHT] = Boolean.toString(jCheckBoxSpotlight.isSelected());
}
}
}