~ubuntu-branches/ubuntu/utopic/mediathekview/utopic

« back to all changes in this revision

Viewing changes to src/mediathek/gui/GuiFilme.java

  • Committer: Package Import Robot
  • Author(s): Markus Koschany
  • Date: 2014-07-24 12:04:16 UTC
  • mfrom: (4.1.11 sid)
  • Revision ID: package-import@ubuntu.com-20140724120416-h9r0d70ql741jdnl
Tags: 7-1
* Imported Upstream version 7.
* Update debian/watch to detect new upstream tarballs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
import mediathek.tool.Filter;
79
79
import mediathek.tool.GuiFunktionen;
80
80
import mediathek.tool.HinweisKeineAuswahl;
 
81
import mediathek.tool.Konstanten;
81
82
import mediathek.tool.ListenerMediathekView;
82
83
import mediathek.tool.MVConfig;
83
84
import mediathek.tool.MVListeFilme;
95
96
    private JButton buttonArray[];
96
97
    private final String[] COMBO_ZEIT = new String[]{"alles", "1 Tag", "2 Tage", "3 Tage", "7 Tage", "15 Tage", "20 Tage", "30 Tage"};
97
98
    public static final int[] COMBO_ZEIT_INT = {0, 1, 2, 3, 7, 15, 20, 30};
98
 
    private MVFilmInformation filmInfoHud;
99
 
    private PanelBeschreibung panelBeschreibung;
 
99
    private final MVFilmInformation filmInfoHud;
 
100
    private final PanelBeschreibung panelBeschreibung;
100
101
    private MVFilter mVFilter;
101
102
    public MVFilterFrame mVFilterFrame;
102
 
    private MVFilterPanel mVFilterPanel;
 
103
    private final MVFilterPanel mVFilterPanel;
103
104
 
104
105
    public GuiFilme(Daten d, JFrame parentComponent) {
105
106
        super(d, parentComponent);
108
109
        jScrollPane1.setViewportView(tabelle);
109
110
        panelVideoplayerSetzen();
110
111
        panelBeschreibung = new PanelBeschreibung(daten.mediathekGui, daten);
111
 
        mVFilterPanel = new MVFilterPanel(parentComponent, daten);
112
 
        mVFilterFrame = new MVFilterFrame(d);
 
112
        mVFilterPanel = new MVFilterPanel(parentComponent, daten) {
 
113
            @Override
 
114
            public void filterChange() {
 
115
                setAktFilter(true);
 
116
            }
 
117
 
 
118
            @Override
 
119
            public void filterReset() {
 
120
                aktFilterLoeschen();
 
121
                filterSpeichern();
 
122
            }
 
123
        };
 
124
        mVFilterFrame = new MVFilterFrame(d) {
 
125
            @Override
 
126
            public void filterChange() {
 
127
                setAktFilter(true);
 
128
            }
 
129
 
 
130
            @Override
 
131
            public void filterReset() {
 
132
                aktFilterLoeschen();
 
133
            }
 
134
        };
113
135
        jPanelBeschreibung.setLayout(new BorderLayout());
114
136
        jPanelBeschreibung.add(panelBeschreibung, BorderLayout.CENTER);
115
137
        jPanelFilter.setLayout(new BorderLayout());
116
138
        filmInfoHud = daten.filmInfoHud;
 
139
        init(); //alles einrichten, Beobachter anhängen
117
140
        setFilterPanel();
118
 
        init(); //alles einrichten, Beobachter anhängen
119
 
        setFilterAction();
 
141
        //setFilterAction();
120
142
        tabelleLaden(); //Filme laden
121
143
        tabelle.initTabelle();
122
144
        if (tabelle.getRowCount() > 0) {
123
145
            tabelle.setRowSelectionInterval(0, 0);
124
146
        }
125
 
        addListenerMediathekView();
 
147
        addMVListener();
126
148
    }
127
149
 
128
150
    //===================================
166
188
 
167
189
            @Override
168
190
            public void fertig(MSListenerFilmeLadenEvent event) {
169
 
                if (!Daten.listeFilmeNachBlackList.neueFilme) {
170
 
                    mVFilter.get_jToggleButtonNeue().setSelected(false);
171
 
                }
172
 
                mVFilter.get_jToggleButtonNeue().setEnabled(Daten.listeFilmeNachBlackList.neueFilme);
173
191
                tabelleLaden();
174
192
            }
175
193
        });
232
250
        BeobMausTabelle beobMausTabelle = new BeobMausTabelle();
233
251
        tabelle.addMouseListener(beobMausTabelle);
234
252
        tabelle.getSelectionModel().addListSelectionListener(new BeobachterTableSelect());
235
 
        tabelle.setDefaultRenderer(Object.class, new CellRendererFilme(daten));
236
 
        tabelle.setDefaultRenderer(Datum.class, new CellRendererFilme(daten));
237
 
        tabelle.setDefaultRenderer(Integer.class, new CellRendererFilme(daten));
 
253
 
 
254
        final CellRendererFilme cellRenderer = new CellRendererFilme(daten);
 
255
        tabelle.setDefaultRenderer(Object.class, cellRenderer);
 
256
        tabelle.setDefaultRenderer(Datum.class, cellRenderer);
 
257
        tabelle.setDefaultRenderer(Integer.class, cellRenderer);
 
258
 
238
259
        tabelle.getTableHeader().addMouseListener(new BeobTableHeader(tabelle, DatenFilm.COLUMN_NAMES, DatenFilm.spaltenAnzeigen,
239
260
                new int[]{DatenFilm.FILM_ABSPIELEN_NR, DatenFilm.FILM_AUFZEICHNEN_NR, DatenFilm.FILM_DATUM_LONG_NR, /* DatenFilm.FILM_URL_HISTORY_NR, */ DatenFilm.FILM_REF_NR},
240
 
                new int[]{DatenFilm.FILM_ABSPIELEN_NR, DatenFilm.FILM_AUFZEICHNEN_NR}) {
241
 
                    @Override
242
 
                    public void tabelleLaden_() {
243
 
                        tabelleLaden();
244
 
                    }
245
 
                });
 
261
                new int[]{DatenFilm.FILM_ABSPIELEN_NR, DatenFilm.FILM_AUFZEICHNEN_NR},
 
262
                true /*Icon*/) {
 
263
            @Override
 
264
            public void tabelleLaden_() {
 
265
                tabelleLaden();
 
266
            }
 
267
        });
246
268
 
247
269
        jCheckBoxProgamme.setIcon(GetIcon.getIcon("close_15.png"));
248
270
        jCheckBoxProgamme.addActionListener(new ActionListener() {
265
287
                });
266
288
    }
267
289
 
268
 
    private void setSplitPane() {
269
 
        try {
270
 
            jSplitPane1.setDividerLocation(Integer.parseInt(Daten.mVConfig.get(MVConfig.SYSTEM_PANEL_FILME_DIVIDER)));
271
 
        } catch (Exception ignore) {
272
 
            jSplitPane1.setDividerLocation(240);
273
 
            Daten.mVConfig.add(MVConfig.SYSTEM_PANEL_FILME_DIVIDER, "240");
274
 
        }
275
 
    }
276
 
 
277
 
    private void setFilterPanel() {
278
 
        boolean history = false;
279
 
        if (mVFilter != null) {
280
 
            mVFilter.removeAllListener();
281
 
            history = mVFilter.get_jToggleButtonHistory().isSelected();
282
 
        }
283
 
        if (Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FENSTER_FILTER))) {
284
 
            jScrollPaneFilter.setVisible(false);
285
 
            jPanelFilter.removeAll();
286
 
            mVFilter = mVFilterFrame;
287
 
            mVFilterFrame.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
288
 
        } else {
289
 
            mVFilterFrame.setVisible(false);
290
 
            mVFilter = mVFilterPanel;
291
 
            jPanelFilter.add(mVFilterPanel, BorderLayout.CENTER);
292
 
            jScrollPaneFilter.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
293
 
            if (jScrollPaneFilter.isVisible()) {
294
 
                setSplitPane();
295
 
            }
296
 
        }
297
 
        // einrichten
298
 
        mVFilter.get_jToggleButtonNeue().setEnabled(false);
299
 
        mVFilter.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
300
 
        mVFilter.get_jComboBoxZeitraum().setModel(new DefaultComboBoxModel<>(COMBO_ZEIT));
301
 
        try {
302
 
            mVFilter.get_jCheckBoxKeineAbos().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_KEINE_ABO)));
303
 
            mVFilter.get_jCheckBoxKeineGesehenen().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_KEINE_GESEHENE)));
304
 
            mVFilter.get_jCheckBoxNurHd().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_NUR_HD)));
305
 
            mVFilter.get_jComboBoxZeitraum().setSelectedIndex(Integer.parseInt(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_TAGE)));
306
 
        } catch (Exception ex) {
307
 
            mVFilter.get_jComboBoxZeitraum().setSelectedIndex(5);
308
 
            Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TAGE, "5");
309
 
        }
310
 
        mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
311
 
        mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
312
 
        try {
313
 
            mVFilter.get_jSliderMinuten().setValue(Integer.parseInt(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_DAUER)));
314
 
        } catch (Exception ex) {
315
 
            mVFilter.get_jSliderMinuten().setValue(0);
316
 
            Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_DAUER, "0");
317
 
        }
318
 
        mVFilter.get_jTextFieldFilterMinuten().setText(String.valueOf(mVFilter.get_jSliderMinuten().getValue()));
319
 
        mVFilter.get_jToggleButtonHistory().setSelected(history);
320
 
    }
321
 
 
322
 
    private void setFilterAction() {
323
 
        mVFilter.get_jComboBoxZeitraum().addActionListener(new ActionListener() {
324
 
            @Override
325
 
            public void actionPerformed(ActionEvent e) {
326
 
                if (!stopBeob) {
327
 
                    Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TAGE, String.valueOf(mVFilter.get_jComboBoxZeitraum().getSelectedIndex()));
328
 
                    MVListeFilme.checkBlacklist();
329
 
                    tabelleLaden();
330
 
                }
331
 
            }
332
 
        });
333
 
        //beobachter Filter
334
 
        mVFilter.get_jToggleButtonLivestram().addActionListener(new ActionListener() {
335
 
            @Override
336
 
            public void actionPerformed(ActionEvent e) {
337
 
                if (!stopBeob) {
338
 
                    stopBeob = true;
339
 
                    //auch die Filter löschen
340
 
                    mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
341
 
                    mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
342
 
                    mVFilter.get_jTextFieldFilterTitel().setText("");
343
 
                }
344
 
                tabelleLaden();
345
 
            }
346
 
        });
347
 
        //Combo Sender
348
 
        mVFilter.get_jButtonFilterLoeschen().addActionListener(new BeobFilterLoeschen());
349
 
        mVFilter.get_jComboBoxFilterSender().addActionListener(new BeobFilterSender());
350
 
        mVFilter.get_jComboBoxFilterThema().addActionListener(new BeobFilter());
351
 
        mVFilter.get_jTextFieldFilterTitel().addActionListener(new BeobFilter());
352
 
        mVFilter.get_jTextFieldFilterTitel().getDocument().addDocumentListener(new BeobFilterTitelDoc());
353
 
        mVFilter.get_jTextFieldFilterThemaTitel().addActionListener(new BeobFilter());
354
 
        mVFilter.get_jTextFieldFilterThemaTitel().getDocument().addDocumentListener(new BeobFilterTitelDoc());
355
 
        mVFilter.get_jTextFieldFilterIrgendwo().addActionListener(new BeobFilter());
356
 
        mVFilter.get_jTextFieldFilterIrgendwo().getDocument().addDocumentListener(new BeobFilterTitelDoc());
357
 
        mVFilter.get_jSliderMinuten().addChangeListener(new ChangeListener() {
358
 
            @Override
359
 
            public void stateChanged(ChangeEvent e) {
360
 
                mVFilter.get_jTextFieldFilterMinuten().setText(String.valueOf(mVFilter.get_jSliderMinuten().getValue()));
361
 
                if (!mVFilter.get_jSliderMinuten().getValueIsAdjusting()) {
362
 
                    Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_DAUER, String.valueOf(mVFilter.get_jSliderMinuten().getValue()));
363
 
                    tabelleLaden();
364
 
                }
365
 
            }
366
 
        });
367
 
        mVFilter.get_jCheckBoxKeineAbos().addActionListener(new BeobFilter());
368
 
        mVFilter.get_jCheckBoxKeineGesehenen().addActionListener(new BeobFilter());
369
 
        mVFilter.get_jCheckBoxNurHd().addActionListener(new BeobFilter());
370
 
        mVFilter.get_jToggleButtonNeue().addActionListener(new BeobFilter());
371
 
        mVFilter.get_jToggleButtonHistory().addActionListener(new BeobFilter());
372
 
    }
373
 
 
374
 
    private void addListenerMediathekView() {
 
290
    private void addMVListener() {
375
291
        ListenerMediathekView.addListener(new ListenerMediathekView(ListenerMediathekView.EREIGNIS_LISTE_PSET, GuiFilme.class.getSimpleName()) {
376
292
            @Override
377
293
            public void ping() {
439
355
            public void ping() {
440
356
                // Panel anzeigen und die Filmliste anpassen
441
357
                setFilterPanel();
442
 
                setFilterAction();
 
358
                //setFilterAction();
443
359
                MVListeFilme.checkBlacklist();
444
360
                tabelleLaden();
445
361
            }
465
381
        jPanelBeschreibung.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_PANEL_BESCHREIBUNG_ANZEIGEN)));
466
382
    }
467
383
 
468
 
    private String[] getThemen(String ssender) {
469
 
        for (int i = 1; i < Daten.listeFilmeNachBlackList.themenPerSender.length; ++i) {
470
 
            if (Daten.listeFilmeNachBlackList.sender[i].equals(ssender)) {
471
 
                return Daten.listeFilmeNachBlackList.themenPerSender[i];
472
 
            }
473
 
        }
474
 
        return Daten.listeFilmeNachBlackList.themenPerSender[0];
475
 
        //return alleThemen;
476
 
    }
477
 
 
478
384
    private synchronized void filmAbspielen_() {
479
385
        DatenPset pset = daten.listePset.getPsetAbspielen();
480
386
        if (pset != null) {
543
449
        }
544
450
    }
545
451
 
 
452
    private void aktFilmSetzen() {
 
453
        if (this.isShowing()) {
 
454
            DatenFilm aktFilm = new DatenFilm();
 
455
            DatenFilm film = getSelFilm();
 
456
            if (film != null) {
 
457
                aktFilm = film;
 
458
            }
 
459
            filmInfoHud.updateCurrentFilm(aktFilm);
 
460
            // Beschreibung setzen
 
461
            panelBeschreibung.setAktFilm(aktFilm);
 
462
        }
 
463
    }
 
464
 
 
465
    private DatenFilm getSelFilm() {
 
466
        int selectedTableRow = tabelle.getSelectedRow();
 
467
        if (selectedTableRow >= 0) {
 
468
            return (DatenFilm) tabelle.getModel().getValueAt(tabelle.convertRowIndexToModel(selectedTableRow), DatenFilm.FILM_REF_NR);
 
469
        }
 
470
        return null;
 
471
    }
 
472
 
 
473
    private DatenFilm getFilm(int zeileTabelle) {
 
474
        if (zeileTabelle >= 0 && zeileTabelle < tabelle.getRowCount()) {
 
475
            return (DatenFilm) tabelle.getModel().getValueAt(tabelle.convertRowIndexToModel(zeileTabelle), DatenFilm.FILM_REF_NR);
 
476
        }
 
477
        return null;
 
478
    }
 
479
 
 
480
    private void setInfo() {
 
481
        String textLinks;
 
482
        final String TRENNER = "  ||  ";
 
483
        int gesamt = Daten.listeFilme.size();
 
484
        int anzListe = tabelle.getModel().getRowCount();
 
485
        int runs = Daten.listeDownloadsButton.getListOfStartsNotFinished(Start.QUELLE_BUTTON).size();
 
486
        // Anzahl der Filme
 
487
        if (gesamt == anzListe) {
 
488
            if (anzListe == 1) {
 
489
                textLinks = "1 Film";
 
490
            } else {
 
491
                textLinks = anzListe + " Filme";
 
492
            }
 
493
        } else {
 
494
            if (anzListe == 1) {
 
495
                textLinks = "1 Film";
 
496
            } else {
 
497
                textLinks = anzListe + " Filme";
 
498
            }
 
499
            textLinks += " (Insgesamt: " + gesamt + " )";
 
500
        }
 
501
        // laufende Programme
 
502
        if (runs == 1) {
 
503
            textLinks += TRENNER;
 
504
            textLinks += (runs + " laufender Film");
 
505
        } else if (runs > 1) {
 
506
            textLinks += TRENNER;
 
507
            textLinks += (runs + " laufende Filme");
 
508
        }
 
509
        // auch die Downloads anzeigen
 
510
        textLinks += TRENNER;
 
511
        textLinks += Daten.listeDownloads.getInfo(false /*mitAbo*/);
 
512
        // Infopanel setzen
 
513
        daten.mediathekGui.getStatusBar().setTextLeft(MVStatusBar.StatusbarIndex.FILME, textLinks);
 
514
    }
 
515
 
546
516
    // ############################################
547
517
    // Panel mit den Extra-Videoprogrammen
548
518
    // ############################################
593
563
        c.gridy = zeile;
594
564
        if (liste.get(i).isLable()) {
595
565
            JLabel label = new JLabel(liste.get(i).arr[DatenPset.PROGRAMMSET_NAME_NR]);
596
 
            Color col = liste.get(i).getFarbe(daten);
 
566
            Color col = liste.get(i).getFarbe();
597
567
            if (col != null) {
598
568
                label.setForeground(col);
599
569
            }
603
573
        } else {
604
574
            button = new JButton(liste.get(i).arr[DatenPset.PROGRAMMSET_NAME_NR]);
605
575
            button.addActionListener(new BeobOpen(liste.get(i)));
606
 
            Color col = liste.get(i).getFarbe(daten);
 
576
            Color col = liste.get(i).getFarbe();
607
577
            if (col != null) {
608
578
                button.setBackground(col);
609
579
            }
615
585
        return ret;
616
586
    }
617
587
 
 
588
    // ############################################
 
589
    // Filter
 
590
    // ############################################
 
591
    private void setFilterPanel() {
 
592
        boolean history = false;
 
593
        if (mVFilter != null) {
 
594
            mVFilter.removeAllListener();
 
595
            history = mVFilter.get_jToggleButtonHistory().isSelected();
 
596
        }
 
597
        if (Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FENSTER_FILTER))) {
 
598
            jPanelFilter.removeAll();
 
599
            jScrollPaneFilter.setVisible(false);
 
600
            mVFilter = mVFilterFrame;
 
601
            mVFilterFrame.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
 
602
        } else {
 
603
            mVFilterFrame.setVisible(false);
 
604
            mVFilter = mVFilterPanel;
 
605
            jPanelFilter.add(mVFilterPanel, BorderLayout.CENTER);
 
606
            jScrollPaneFilter.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
 
607
            if (jScrollPaneFilter.isVisible()) {
 
608
                setSplitPane();
 
609
            }
 
610
        }
 
611
        // einrichten
 
612
        mVFilter.setVisible(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
 
613
        mVFilter.get_jComboBoxZeitraum().setModel(new DefaultComboBoxModel<>(COMBO_ZEIT));
 
614
        setAktFilter(false);
 
615
        mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
 
616
        mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
 
617
        mVFilter.get_jToggleButtonHistory().setSelected(history);
 
618
        setFilterAction();
 
619
        this.updateUI();
 
620
    }
 
621
 
 
622
    private void setSplitPane() {
 
623
        try {
 
624
            jSplitPane1.setDividerLocation(Integer.parseInt(Daten.mVConfig.get(MVConfig.SYSTEM_PANEL_FILME_DIVIDER)));
 
625
        } catch (Exception ignore) {
 
626
            Daten.mVConfig.add(MVConfig.SYSTEM_PANEL_FILME_DIVIDER, Konstanten.GUIFILME_DIVIDER_LOCATION);
 
627
            jSplitPane1.setDividerLocation(Integer.parseInt(Konstanten.GUIFILME_DIVIDER_LOCATION));
 
628
        }
 
629
    }
 
630
 
 
631
    private void setFilterAction() {
 
632
        mVFilter.get_jComboBoxZeitraum().addActionListener(new ActionListener() {
 
633
            @Override
 
634
            public void actionPerformed(ActionEvent e) {
 
635
                if (!stopBeob) {
 
636
                    Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TAGE, String.valueOf(mVFilter.get_jComboBoxZeitraum().getSelectedIndex()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
637
                    MVListeFilme.checkBlacklist();
 
638
                    tabelleLaden();
 
639
                }
 
640
            }
 
641
        });
 
642
        //beobachter Filter
 
643
        mVFilter.get_jToggleButtonLivestram().addActionListener(new ActionListener() {
 
644
            @Override
 
645
            public void actionPerformed(ActionEvent e) {
 
646
                if (!stopBeob) {
 
647
                    stopBeob = true;
 
648
                    //auch die Filter löschen
 
649
                    mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
 
650
                    mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
 
651
                    mVFilter.get_jTextFieldFilterTitel().setText("");
 
652
                }
 
653
                tabelleLaden();
 
654
            }
 
655
        });
 
656
        //Combo Sender
 
657
        mVFilter.get_jButtonFilterLoeschen().addActionListener(new BeobFilterLoeschen());
 
658
        mVFilter.get_jComboBoxFilterSender().addActionListener(new BeobFilter());
 
659
        mVFilter.get_jComboBoxFilterThema().addActionListener(new BeobFilter());
 
660
        mVFilter.get_jTextFieldFilterTitel().addActionListener(new BeobFilter());
 
661
        mVFilter.get_jTextFieldFilterTitel().getDocument().addDocumentListener(new BeobFilterTitelDoc());
 
662
        mVFilter.get_jTextFieldFilterThemaTitel().addActionListener(new BeobFilter());
 
663
        mVFilter.get_jTextFieldFilterThemaTitel().getDocument().addDocumentListener(new BeobFilterTitelDoc());
 
664
//        mVFilter.get_jTextFieldFilterIrgendwo().addActionListener(new BeobFilter());
 
665
//        mVFilter.get_jTextFieldFilterIrgendwo().getDocument().addDocumentListener(new BeobFilterTitelDoc());
 
666
        mVFilter.get_jSliderMinuten().addChangeListener(new ChangeListener() {
 
667
            @Override
 
668
            public void stateChanged(ChangeEvent e) {
 
669
                if (!stopBeob) {
 
670
                    mVFilter.get_jTextFieldFilterMinuten().setText(String.valueOf(mVFilter.get_jSliderMinuten().getValue()));
 
671
                    if (!mVFilter.get_jSliderMinuten().getValueIsAdjusting()) {
 
672
                        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_DAUER, String.valueOf(mVFilter.get_jSliderMinuten().getValue()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
673
                        tabelleLaden();
 
674
                    }
 
675
                }
 
676
            }
 
677
        });
 
678
        mVFilter.get_jCheckBoxKeineAbos().addActionListener(new BeobFilter());
 
679
        mVFilter.get_jCheckBoxKeineGesehenen().addActionListener(new BeobFilter());
 
680
        mVFilter.get_jCheckBoxNurHd().addActionListener(new BeobFilter());
 
681
        mVFilter.get_jCheckBoxNeue().addActionListener(new BeobFilter());
 
682
        mVFilter.get_jToggleButtonHistory().addActionListener(new BeobFilter());
 
683
        mVFilter.get_jRadioButtonTT().addActionListener(new BeobFilter());
 
684
        mVFilter.get_JRadioButtonIrgendwo().addActionListener(new BeobFilter());
 
685
    }
 
686
 
 
687
    private void setAktFilter(boolean aktChange) {
 
688
        stopBeob = true;
 
689
        try {
 
690
            if (aktChange) {
 
691
                mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
 
692
                mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
 
693
            }
 
694
            mVFilter.get_jComboBoxFilterSender().setSelectedItem(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_SENDER, Daten.aktFilter));
 
695
            mVFilter.get_jComboBoxFilterThema().setSelectedItem(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_THEMA, Daten.aktFilter));
 
696
 
 
697
            mVFilter.get_jTextFieldFilterTitel().setText(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_TITEL, Daten.aktFilter));
 
698
            mVFilter.get_jTextFieldFilterThemaTitel().setText(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_THEMA_TITEL, Daten.aktFilter));
 
699
            if (Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_TT, Daten.aktFilter).isEmpty()) {
 
700
                Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TT, Boolean.TRUE.toString(), Daten.aktFilter, MVFilter.MAX_FILTER);
 
701
            }
 
702
            mVFilter.setThemaTitel(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_TT, Daten.aktFilter)));
 
703
 
 
704
            mVFilter.get_jCheckBoxKeineAbos().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_KEINE_ABO, Daten.aktFilter)));
 
705
            mVFilter.get_jCheckBoxKeineGesehenen().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_KEINE_GESEHENE, Daten.aktFilter)));
 
706
            mVFilter.get_jCheckBoxNurHd().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_NUR_HD, Daten.aktFilter)));
 
707
            mVFilter.get_jCheckBoxNeue().setSelected(Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_NUR_NEUE, Daten.aktFilter)));
 
708
            mVFilter.get_jComboBoxZeitraum().setSelectedIndex(Integer.parseInt(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_TAGE, Daten.aktFilter)));
 
709
        } catch (NumberFormatException ex) {
 
710
            mVFilter.get_jComboBoxZeitraum().setSelectedIndex(5);
 
711
            Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TAGE, "5", Daten.aktFilter, MVFilter.MAX_FILTER);
 
712
        }
 
713
        try {
 
714
            mVFilter.get_jSliderMinuten().setValue(Integer.parseInt(Daten.mVConfig.get(MVConfig.SYSTEM_FILTER_DAUER, Daten.aktFilter)));
 
715
        } catch (Exception ex) {
 
716
            mVFilter.get_jSliderMinuten().setValue(0);
 
717
            Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_DAUER, "0", Daten.aktFilter, MVFilter.MAX_FILTER);
 
718
        }
 
719
        mVFilter.get_jTextFieldFilterMinuten().setText(String.valueOf(mVFilter.get_jSliderMinuten().getValue()));
 
720
        stopBeob = false;
 
721
        if (aktChange) {
 
722
            MVListeFilme.checkBlacklist();
 
723
            tabelleLadenAktFilterChange();
 
724
        }
 
725
    }
 
726
 
 
727
    private void aktFilterLoeschen() {
 
728
        stopBeob = true;
 
729
        filterLoeschen_();
 
730
        mVFilter.get_jCheckBoxKeineAbos().setSelected(false);
 
731
        mVFilter.get_jCheckBoxKeineGesehenen().setSelected(false);
 
732
        mVFilter.get_jCheckBoxNurHd().setSelected(false);
 
733
        mVFilter.get_jCheckBoxNeue().setSelected(false);
 
734
        mVFilter.get_jComboBoxZeitraum().setSelectedIndex(0);
 
735
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TAGE, "0", Daten.aktFilter, MVFilter.MAX_FILTER);
 
736
        mVFilter.get_jSliderMinuten().setValue(0);
 
737
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_DAUER, "0", Daten.aktFilter, MVFilter.MAX_FILTER);
 
738
        mVFilter.get_jTextFieldFilterMinuten().setText(String.valueOf(mVFilter.get_jSliderMinuten().getValue()));
 
739
        stopBeob = false;
 
740
        filterSpeichern();
 
741
        MVListeFilme.checkBlacklist();
 
742
        tabelleLadenAktFilterChange();
 
743
    }
 
744
 
 
745
    private void filterLoeschen_() {
 
746
        stopBeob = true;
 
747
        //ComboModels neu aufbauen
 
748
        mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
 
749
        mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
 
750
        mVFilter.get_jTextFieldFilterTitel().setText("");
 
751
        mVFilter.get_jTextFieldFilterThemaTitel().setText("");
 
752
        mVFilter.setThemaTitel(true);
 
753
        //neu laden
 
754
        tabelleLaden();
 
755
    }
 
756
 
 
757
    private void filterSpeichern() {
 
758
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_SENDER, String.valueOf(mVFilter.get_jComboBoxFilterSender().getSelectedItem()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
759
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_THEMA, String.valueOf(mVFilter.get_jComboBoxFilterThema().getSelectedItem()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
760
 
 
761
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TITEL, String.valueOf(mVFilter.get_jTextFieldFilterTitel().getText()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
762
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_THEMA_TITEL, String.valueOf(mVFilter.get_jTextFieldFilterThemaTitel().getText()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
763
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TT, Boolean.toString(mVFilter.getThemaTitel()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
764
 
 
765
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_KEINE_ABO, String.valueOf(mVFilter.get_jCheckBoxKeineAbos().isSelected()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
766
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_KEINE_GESEHENE, String.valueOf(mVFilter.get_jCheckBoxKeineGesehenen().isSelected()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
767
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_NUR_HD, String.valueOf(mVFilter.get_jCheckBoxNurHd().isSelected()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
768
        Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_NUR_NEUE, String.valueOf(mVFilter.get_jCheckBoxNeue().isSelected()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
769
    }
 
770
 
 
771
    private String[] getThemen(String ssender) {
 
772
        for (int i = 1; i < Daten.listeFilmeNachBlackList.themenPerSender.length; ++i) {
 
773
            if (Daten.listeFilmeNachBlackList.sender[i].equals(ssender)) {
 
774
                return Daten.listeFilmeNachBlackList.themenPerSender[i];
 
775
            }
 
776
        }
 
777
        return Daten.listeFilmeNachBlackList.themenPerSender[0];
 
778
        //return alleThemen;
 
779
    }
 
780
 
 
781
    // ####################################
 
782
    // Tabelle laden
 
783
    // ####################################
618
784
    private synchronized void tabelleLaden() {
619
785
        try {
620
786
            if (!Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER))) {
692
858
        }
693
859
    }
694
860
 
 
861
    private synchronized void tabelleLadenAktFilterChange() {
 
862
        try {
 
863
            stopBeob = true;
 
864
            tabelle.getSpalten();
 
865
            String filterThema = mVFilter.get_jComboBoxFilterThema().getSelectedItem().toString();
 
866
            String filterSender = mVFilter.get_jComboBoxFilterSender().getSelectedItem().toString();
 
867
            //Filme neu laden
 
868
            listeInModellLaden();
 
869
            if (filterSender.equals("")) {
 
870
                mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
 
871
            } else {
 
872
                mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen(filterSender)));
 
873
            }
 
874
            mVFilter.get_jComboBoxFilterThema().setSelectedItem(filterThema);
 
875
            setInfo();
 
876
            tabelle.setSpalten();
 
877
            aktFilmSetzen();
 
878
            stopBeob = false;
 
879
        } catch (Exception ex) {
 
880
            Log.fehlerMeldung(912034789, Log.FEHLER_ART_PROG, "GuiFilme.tabelleLadenAktFilterChange", ex);
 
881
        }
 
882
    }
 
883
 
695
884
    private synchronized void listeInModellLaden() {
696
885
        ListeFilme lf;
697
886
        if (mVFilter.get_jToggleButtonHistory().isSelected()) {
704
893
            MVListeFilme.getModelTabFilme(lf, daten, tabelle,
705
894
                    mVFilter.get_jComboBoxFilterSender().getSelectedItem().toString(),
706
895
                    mVFilter.get_jComboBoxFilterThema().getSelectedItem().toString(), mVFilter.get_jTextFieldFilterTitel().getText(),
707
 
                    mVFilter.get_jTextFieldFilterThemaTitel().getText(),
708
 
                    mVFilter.get_jTextFieldFilterIrgendwo().getText(),
 
896
                    mVFilter.getThemaTitel() ? mVFilter.get_jTextFieldFilterThemaTitel().getText() : "",
 
897
                    mVFilter.getThemaTitel() ? "" : mVFilter.get_jTextFieldFilterThemaTitel().getText(),
709
898
                    mVFilter.get_jSliderMinuten().getValue(),
710
899
                    mVFilter.get_jCheckBoxKeineAbos().isSelected(), mVFilter.get_jCheckBoxKeineGesehenen().isSelected(),
711
 
                    mVFilter.get_jCheckBoxNurHd().isSelected(), mVFilter.get_jToggleButtonLivestram().isSelected(), mVFilter.get_jToggleButtonNeue().isSelected());
 
900
                    mVFilter.get_jCheckBoxNurHd().isSelected(), mVFilter.get_jToggleButtonLivestram().isSelected(), mVFilter.get_jCheckBoxNeue().isSelected());
712
901
        } else {
713
902
            // jetzt nur den Filter aus der Toolbar
714
903
            MVListeFilme.getModelTabFilme(lf, daten, tabelle,
717
906
                    "",
718
907
                    mVFilter.get_jSliderMinuten().getValue(),
719
908
                    mVFilter.get_jCheckBoxKeineAbos().isSelected(), mVFilter.get_jCheckBoxKeineGesehenen().isSelected(),
720
 
                    mVFilter.get_jCheckBoxNurHd().isSelected(), mVFilter.get_jToggleButtonLivestram().isSelected(), mVFilter.get_jToggleButtonNeue().isSelected());
721
 
        }
722
 
    }
723
 
    // ####################################
724
 
    // Ende Tabelle asynchron füllen
725
 
    // ####################################
726
 
 
727
 
    private void filterLoeschen_() {
728
 
        stopBeob = true;
729
 
        //ComboModels neu aufbauen
730
 
        mVFilter.get_jComboBoxFilterSender().setModel(new javax.swing.DefaultComboBoxModel<>(Daten.listeFilmeNachBlackList.sender));
731
 
        mVFilter.get_jComboBoxFilterThema().setModel(new javax.swing.DefaultComboBoxModel<>(getThemen("")));
732
 
        mVFilter.get_jTextFieldFilterTitel().setText("");
733
 
        mVFilter.get_jTextFieldFilterThemaTitel().setText("");
734
 
        mVFilter.get_jTextFieldFilterIrgendwo().setText("");
735
 
        //jSliderMinuten.setValue(0);
736
 
        //neu laden
737
 
        tabelleLaden();
738
 
    }
739
 
 
740
 
    private void aktFilmSetzen() {
741
 
        if (this.isShowing()) {
742
 
            DatenFilm aktFilm = new DatenFilm();
743
 
            DatenFilm film = getSelFilm();
744
 
            if (film != null) {
745
 
                aktFilm = film;
746
 
            }
747
 
            filmInfoHud.updateCurrentFilm(aktFilm);
748
 
            // Beschreibung setzen
749
 
            panelBeschreibung.setAktFilm(aktFilm);
750
 
        }
751
 
    }
752
 
 
753
 
    private DatenFilm getSelFilm() {
754
 
        int selectedTableRow = tabelle.getSelectedRow();
755
 
        if (selectedTableRow >= 0) {
756
 
            return (DatenFilm) tabelle.getModel().getValueAt(tabelle.convertRowIndexToModel(selectedTableRow), DatenFilm.FILM_REF_NR);
757
 
        }
758
 
        return null;
759
 
    }
760
 
 
761
 
    private DatenFilm getFilm(int zeileTabelle) {
762
 
        if (zeileTabelle >= 0 && zeileTabelle < tabelle.getRowCount()) {
763
 
            return (DatenFilm) tabelle.getModel().getValueAt(tabelle.convertRowIndexToModel(zeileTabelle), DatenFilm.FILM_REF_NR);
764
 
        }
765
 
        return null;
766
 
    }
767
 
 
768
 
    private void setInfo() {
769
 
        String textLinks;
770
 
        final String TRENNER = "  ||  ";
771
 
        int gesamt = Daten.listeFilme.size();
772
 
        int anzListe = tabelle.getModel().getRowCount();
773
 
        int runs = Daten.listeDownloadsButton.getListteStartsNotFinished(Start.QUELLE_BUTTON).size();
774
 
        // Anzahl der Filme
775
 
        if (gesamt == anzListe) {
776
 
            if (anzListe == 1) {
777
 
                textLinks = "1 Film";
778
 
            } else {
779
 
                textLinks = anzListe + " Filme";
780
 
            }
781
 
        } else {
782
 
            if (anzListe == 1) {
783
 
                textLinks = "1 Film";
784
 
            } else {
785
 
                textLinks = anzListe + " Filme";
786
 
            }
787
 
            textLinks += " (Insgesamt: " + gesamt + " )";
788
 
        }
789
 
        // laufende Programme
790
 
        if (runs == 1) {
791
 
            textLinks += TRENNER;
792
 
            textLinks += (runs + " laufender Film");
793
 
        } else if (runs > 1) {
794
 
            textLinks += TRENNER;
795
 
            textLinks += (runs + " laufende Filme");
796
 
        }
797
 
        // auch die Downloads anzeigen
798
 
        textLinks += TRENNER;
799
 
        textLinks += Daten.listeDownloads.getInfo(false /*mitAbo*/);
800
 
        // Infopanel setzen
801
 
        daten.mediathekGui.getStatusBar().setTextLeft(MVStatusBar.StatusbarIndex.FILME, textLinks);
802
 
    }
803
 
 
804
 
    /**
805
 
     * This method is called from within the constructor to initialize the form.
806
 
     * WARNING: Do NOT modify this code. The content of this method is always
807
 
     * regenerated by the Form Editor.
808
 
     */
 
909
                    mVFilter.get_jCheckBoxNurHd().isSelected(), mVFilter.get_jToggleButtonLivestram().isSelected(), mVFilter.get_jCheckBoxNeue().isSelected());
 
910
        }
 
911
    }
 
912
 
809
913
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
810
914
    private void initComponents() {
811
915
 
812
 
        jPanel5 = new javax.swing.JPanel();
813
916
        jSplitPane1 = new javax.swing.JSplitPane();
814
917
        jPanel1 = new javax.swing.JPanel();
815
918
        jScrollPane1 = new javax.swing.JScrollPane();
821
924
        jScrollPaneFilter = new javax.swing.JScrollPane();
822
925
        jPanelFilter = new javax.swing.JPanel();
823
926
 
824
 
        jPanel5.setMaximumSize(new java.awt.Dimension(32767, 5));
825
 
        jPanel5.setMinimumSize(new java.awt.Dimension(100, 5));
826
 
 
827
 
        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
828
 
        jPanel5.setLayout(jPanel5Layout);
829
 
        jPanel5Layout.setHorizontalGroup(
830
 
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
831
 
            .addGap(0, 0, Short.MAX_VALUE)
832
 
        );
833
 
        jPanel5Layout.setVerticalGroup(
834
 
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
835
 
            .addGap(0, 5, Short.MAX_VALUE)
836
 
        );
837
 
 
838
927
        jSplitPane1.setDividerLocation(240);
839
928
 
840
929
        jTable1.setAutoCreateRowSorter(true);
900
989
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
901
990
            .addComponent(jPanelExtra, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
902
991
            .addComponent(jPanelBeschreibung, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
903
 
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 588, Short.MAX_VALUE)
 
992
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 612, Short.MAX_VALUE)
904
993
        );
905
994
        jPanel1Layout.setVerticalGroup(
906
995
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
907
996
            .addGroup(jPanel1Layout.createSequentialGroup()
908
 
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE)
 
997
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 337, Short.MAX_VALUE)
909
998
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
910
999
                .addComponent(jPanelBeschreibung, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
911
1000
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
922
1011
        );
923
1012
        jPanelFilterLayout.setVerticalGroup(
924
1013
            jPanelFilterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
925
 
            .addGap(0, 481, Short.MAX_VALUE)
 
1014
            .addGap(0, 504, Short.MAX_VALUE)
926
1015
        );
927
1016
 
928
1017
        jScrollPaneFilter.setViewportView(jPanelFilter);
933
1022
        this.setLayout(layout);
934
1023
        layout.setHorizontalGroup(
935
1024
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
936
 
            .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
937
 
            .addGroup(layout.createSequentialGroup()
938
 
                .addContainerGap()
939
 
                .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 839, Short.MAX_VALUE)
940
 
                .addContainerGap())
 
1025
            .addComponent(jSplitPane1)
941
1026
        );
942
1027
        layout.setVerticalGroup(
943
1028
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
944
 
            .addGroup(layout.createSequentialGroup()
945
 
                .addContainerGap()
946
 
                .addComponent(jSplitPane1)
947
 
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
948
 
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
 
1029
            .addComponent(jSplitPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 509, Short.MAX_VALUE)
949
1030
        );
950
1031
    }// </editor-fold>//GEN-END:initComponents
951
1032
 
952
1033
    // Variables declaration - do not modify//GEN-BEGIN:variables
953
1034
    private javax.swing.JCheckBox jCheckBoxProgamme;
954
1035
    private javax.swing.JPanel jPanel1;
955
 
    private javax.swing.JPanel jPanel5;
956
1036
    private javax.swing.JPanel jPanelBeschreibung;
957
1037
    private javax.swing.JPanel jPanelExtra;
958
1038
    private javax.swing.JPanel jPanelExtraInnen;
977
1057
        }
978
1058
    }
979
1059
 
980
 
    private class BeobFilterSender implements ActionListener {
981
 
 
982
 
        @Override
983
 
        public void actionPerformed(ActionEvent e) {
984
 
            if (!stopBeob) {
985
 
                tabelleLaden();
986
 
            }
987
 
        }
988
 
    }
989
 
 
990
1060
    private class BeobFilter implements ActionListener {
991
1061
 
992
1062
        @Override
993
1063
        public void actionPerformed(ActionEvent e) {
994
1064
            if (!stopBeob) {
995
 
                Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_KEINE_ABO, String.valueOf(mVFilter.get_jCheckBoxKeineAbos().isSelected()));
996
 
                Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_KEINE_GESEHENE, String.valueOf(mVFilter.get_jCheckBoxKeineGesehenen().isSelected()));
997
 
                Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_NUR_HD, String.valueOf(mVFilter.get_jCheckBoxNurHd().isSelected()));
 
1065
                filterSpeichern();
998
1066
                tabelleLaden();
999
1067
            }
1000
1068
        }
1018
1086
        }
1019
1087
    }
1020
1088
 
 
1089
    private class BeobFilterTitelDoc implements DocumentListener {
 
1090
 
 
1091
        @Override
 
1092
        public void insertUpdate(DocumentEvent e) {
 
1093
            tus();
 
1094
        }
 
1095
 
 
1096
        @Override
 
1097
        public void removeUpdate(DocumentEvent e) {
 
1098
            tus();
 
1099
        }
 
1100
 
 
1101
        @Override
 
1102
        public void changedUpdate(DocumentEvent e) {
 
1103
            tus();
 
1104
        }
 
1105
 
 
1106
        private void tus() {
 
1107
            Filter.checkPattern1(mVFilter.get_jTextFieldFilterThemaTitel());
 
1108
            Filter.checkPattern1(mVFilter.get_jTextFieldFilterTitel());
 
1109
            if (Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_ECHTZEITSUCHE))) {
 
1110
                Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_TITEL, String.valueOf(mVFilter.get_jTextFieldFilterTitel().getText()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
1111
                Daten.mVConfig.add(MVConfig.SYSTEM_FILTER_THEMA_TITEL, String.valueOf(mVFilter.get_jTextFieldFilterThemaTitel().getText()), Daten.aktFilter, MVFilter.MAX_FILTER);
 
1112
                tabelleLaden();
 
1113
            }
 
1114
        }
 
1115
    }
 
1116
 
1021
1117
    public class BeobMausTabelle extends MouseAdapter {
1022
1118
        //rechhte Maustaste in der Tabelle
1023
1119
 
1024
 
        private BeobUrl beobUrl = new BeobUrl();
1025
 
        private BeobPrint beobPrint = new BeobPrint();
1026
 
        private BeobFilterLoeschen beobLoeschen = new BeobFilterLoeschen();
1027
 
        private BeobAbo beobAbo = new BeobAbo(false /* mit Titel */);
1028
 
        private BeobAbo beobAboMitTitel = new BeobAbo(true /* mit Titel */);
1029
 
        private BeobAboFilter beobAboFilter = new BeobAboFilter();
1030
 
        private BeobFilterThema beobThema = new BeobFilterThema();
1031
 
        private BeobFilterSender beobSender = new BeobFilterSender();
1032
 
        private BeobFilterSenderThema beobSenderThema = new BeobFilterSenderThema();
1033
 
        private BeobFilterSenderThemaTitel beobSenderThemaTitel = new BeobFilterSenderThemaTitel();
1034
 
        private BeobBlacklist boeobBlacklistSender = new BeobBlacklist(true, false);
1035
 
        private BeobBlacklist boeobBlacklistSenderThema = new BeobBlacklist(true, true);
 
1120
        private final BeobUrl beobUrl = new BeobUrl();
 
1121
        private final BeobPrint beobPrint = new BeobPrint();
 
1122
        private final BeobFilterLoeschen beobLoeschen = new BeobFilterLoeschen();
 
1123
        private final BeobAbo beobAbo = new BeobAbo(false /* mit Titel */);
 
1124
        private final BeobAbo beobAboMitTitel = new BeobAbo(true /* mit Titel */);
 
1125
        private final BeobAboFilter beobAboFilter = new BeobAboFilter();
 
1126
        private final BeobFilterThema beobThema = new BeobFilterThema();
 
1127
        private final BeobFilterSender beobSender = new BeobFilterSender();
 
1128
        private final BeobFilterSenderThema beobSenderThema = new BeobFilterSenderThema();
 
1129
        private final BeobFilterSenderThemaTitel beobSenderThemaTitel = new BeobFilterSenderThemaTitel();
 
1130
        private final BeobBlacklist boeobBlacklistSender = new BeobBlacklist(true, false);
 
1131
        private final BeobBlacklist boeobBlacklistSenderThema = new BeobBlacklist(true, true);
1036
1132
        private Point p;
1037
1133
 
1038
1134
        public BeobMausTabelle() {
1193
1289
                    // ein "leeres" Pset, Platzhalter
1194
1290
                    continue;
1195
1291
                }
1196
 
                Color col = pset.getFarbe(daten);
 
1292
                Color col = pset.getFarbe();
1197
1293
                item = new JMenuItem(pset.arr[DatenPset.PROGRAMMSET_NAME_NR]);
1198
1294
                if (pset.getListeProg().isEmpty()) {
1199
1295
                    if (col != null) {
1244
1340
            jPopupMenu.add(item);
1245
1341
            //History
1246
1342
            if (film != null) {
1247
 
                if (daten.history.contains(film.getUrlHistory())) {
 
1343
                if (daten.history.urlPruefen(film.getUrlHistory())) {
1248
1344
                    item = new JMenuItem("Film als ungesehen markieren");
1249
1345
                    item.addActionListener(new BeobHistory(false));
1250
1346
                } else {
1284
1380
                if (nr >= 0) {
1285
1381
                    DatenFilm film = getFilm(nr);
1286
1382
                    if (eintragen) {
1287
 
                        daten.history.add(film.getUrlHistory());
 
1383
                        daten.history.zeileSchreiben(film.arr[DatenFilm.FILM_THEMA_NR], film.arr[DatenFilm.FILM_TITEL_NR], film.getUrlHistory());
1288
1384
                        Daten.listeFilmeHistory.add(film);
1289
1385
                    } else {
1290
 
                        daten.history.remove(film.getUrlHistory());
 
1386
                        daten.history.urlAusLogfileLoeschen(film.getUrlHistory());
1291
1387
                    }
1292
1388
                }
1293
1389
            }
1464
1560
                        DatenFilm film = getFilm(nr);
1465
1561
                        String thema = film.arr[DatenFilm.FILM_THEMA_NR];
1466
1562
                        //neues Abo anlegen
 
1563
                        // addAbo(String filmSender, String filmThema, String filmTitel, String filmThemaTitel, String irgendwo, int mindestdauer, String namePfad)
1467
1564
                        Daten.listeAbo.addAbo(mVFilter.get_jComboBoxFilterSender().getSelectedItem().toString(),
1468
1565
                                mVFilter.get_jComboBoxFilterThema().getSelectedItem().toString(),
1469
 
                                mVFilter.get_jTextFieldFilterTitel().getText(), mVFilter.get_jTextFieldFilterThemaTitel().getText(),
1470
 
                                mVFilter.get_jTextFieldFilterIrgendwo().getText(), mVFilter.get_jSliderMinuten().getValue(), thema);
 
1566
                                mVFilter.get_jTextFieldFilterTitel().getText(),
 
1567
                                mVFilter.getThemaTitel() ? mVFilter.get_jTextFieldFilterThemaTitel().getText() : "",
 
1568
                                mVFilter.getThemaTitel() ? "" : mVFilter.get_jTextFieldFilterThemaTitel().getText(),
 
1569
                                mVFilter.get_jSliderMinuten().getValue(), thema);
1471
1570
                        stopBeob = false;
1472
1571
                    }
1473
1572
                }
1505
1604
        }
1506
1605
    }
1507
1606
 
1508
 
    private class BeobFilterTitelDoc implements DocumentListener {
1509
 
 
1510
 
        @Override
1511
 
        public void insertUpdate(DocumentEvent e) {
1512
 
            tus();
1513
 
        }
1514
 
 
1515
 
        @Override
1516
 
        public void removeUpdate(DocumentEvent e) {
1517
 
            tus();
1518
 
        }
1519
 
 
1520
 
        @Override
1521
 
        public void changedUpdate(DocumentEvent e) {
1522
 
            tus();
1523
 
        }
1524
 
 
1525
 
        private void tus() {
1526
 
            Filter.checkPattern1(mVFilter.get_jTextFieldFilterThemaTitel());
1527
 
            Filter.checkPattern1(mVFilter.get_jTextFieldFilterTitel());
1528
 
            if (Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_ECHTZEITSUCHE))) {
1529
 
                tabelleLaden();
1530
 
            }
1531
 
        }
1532
 
    }
1533
1607
}