~ubuntu-branches/ubuntu/vivid/mediathekview/vivid

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Markus Koschany
  • Date: 2014-10-24 12:49:46 UTC
  • mfrom: (4.1.12 sid)
  • Revision ID: package-import@ubuntu.com-20141024124946-rhnmiwad6apojoxt
Tags: 7.1-1
* Imported Upstream version 7.1.
* Declare compliance with Debian Policy 3.9.6.
* Update VCS-Browser field to new canonical address.
* Update man pages timestamp.
* Update debian/copyright for new release.
* Add README.source.
* Rename modify-ant-build-system.patch to build.patch and update it for 7.1.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * MediathekView
 
3
 * Copyright (C) 2008 W. Xaver
 
4
 * W.Xaver[at]googlemail.com
 
5
 * http://zdfmediathk.sourceforge.net/
 
6
 *
 
7
 * This program is free software: you can redistribute it and/or modify
 
8
 * it under the terms of the GNU General Public License as published by
 
9
 * the Free Software Foundation, either version 3 of the License, or
 
10
 * any later version.
 
11
 *
 
12
 * This program is distributed in the hope that it will be useful,
 
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
15
 * GNU General Public License for more details.
 
16
 *
 
17
 * You should have received a copy of the GNU General Public License
 
18
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 
19
 */
 
20
package mediathek.gui;
 
21
 
 
22
import java.awt.event.ActionEvent;
 
23
import java.awt.event.ActionListener;
 
24
import java.awt.event.MouseAdapter;
 
25
import java.awt.event.MouseEvent;
 
26
import java.util.ArrayList;
 
27
import java.util.Arrays;
 
28
import java.util.LinkedList;
 
29
import javax.swing.Box.Filler;
 
30
import javax.swing.JButton;
 
31
import javax.swing.JCheckBoxMenuItem;
 
32
import javax.swing.JMenuItem;
 
33
import javax.swing.JPopupMenu;
 
34
import javax.swing.JToolBar;
 
35
import mediathek.daten.Daten;
 
36
import mediathek.res.GetIcon;
 
37
import mediathek.tool.Filter;
 
38
import mediathek.tool.ListenerMediathekView;
 
39
import mediathek.tool.MVConfig;
 
40
import msearch.filmeSuchen.MSListenerFilmeLaden;
 
41
import msearch.filmeSuchen.MSListenerFilmeLadenEvent;
 
42
import org.jdesktop.swingx.JXSearchField;
 
43
 
 
44
public final class MVToolBar extends JToolBar {
 
45
 
 
46
    public static final String TOOLBAR_NIX = "";
 
47
    public static final String TOOLBAR_TAB_FILME = "Tab-Filme";
 
48
    public static final String TOOLBAR_TAB_DOWNLOADS = "Tab-Downloads";
 
49
    public static final String TOOLBAR_TAB_ABOS = "Tab-Abos";
 
50
    public static final String TOOLBAR_TAB_MELDUNGEN = "Meldungen";
 
51
    Filler filler__5;
 
52
    Filler filler__10;
 
53
    Filler filler__trenner;
 
54
    MVButton jButtonAboAendern;
 
55
    MVButton jButtonAbosAusschalten;
 
56
    MVButton jButtonAbosEinschalten;
 
57
    MVButton jButtonAbosLoeschen;
 
58
    MVButton jButtonDownloadAktualisieren;
 
59
    MVButton jButtonDownloadAlleStarten;
 
60
    MVButton jButtonDownloadAufraeumen;
 
61
    MVButton jButtonDownloadFilmStarten;
 
62
    MVButton jButtonDownloadLoeschen;
 
63
    MVButton jButtonDownloadZurueckstellen;
 
64
    MVButton jButtonFilmAbspielen;
 
65
    MVButton jButtonFilmSpeichern;
 
66
    MVButton jButtonFilmeLaden;
 
67
    JButton jButtonFilterPanel;
 
68
    MVButton jButtonInfo;
 
69
    public JXSearchField jTextFieldFilter;
 
70
 
 
71
    private String nrToolbar = "";
 
72
    private String nrIconKlein = "";
 
73
    private final Daten daten;
 
74
    BeobMausToolBar beobMausToolBar = new BeobMausToolBar();
 
75
    LinkedList<MVButton> buttonListAlles = new LinkedList<>();
 
76
    LinkedList<MVButton> buttonListDownloads = new LinkedList<>();
 
77
    LinkedList<MVButton> buttonListAbos = new LinkedList<>();
 
78
    boolean extern = false;
 
79
    String state;
 
80
    LinkedList<MVButton> buttonListToUse;
 
81
 
 
82
    public MVToolBar(Daten ddaten, String sstate) {
 
83
        // für die Toolbar der Externen Fenster
 
84
        extern = true;
 
85
        daten = ddaten;
 
86
        state = sstate;
 
87
        switch (sstate) {
 
88
            case TOOLBAR_TAB_DOWNLOADS:
 
89
                nrToolbar = MVConfig.SYSTEM_TOOLBAR_DOWNLOAD_EXTERN;
 
90
                nrIconKlein = MVConfig.SYSTEM_ICON_KLEIN_DOWNLOADS_EXTERN;
 
91
                buttonListToUse = buttonListDownloads;
 
92
                break;
 
93
            case TOOLBAR_TAB_ABOS:
 
94
                nrToolbar = MVConfig.SYSTEM_TOOLBAR_ABO_EXTERN;
 
95
                nrIconKlein = MVConfig.SYSTEM_ICON_KLEIN_ABOS_EXTERN;
 
96
                buttonListToUse = buttonListAbos;
 
97
                break;
 
98
            default:
 
99
                nrToolbar = "";
 
100
                nrIconKlein = "";
 
101
                buttonListToUse = new LinkedList<>();
 
102
        }
 
103
        startup();
 
104
        setToolbar(state);
 
105
    }
 
106
 
 
107
    public MVToolBar(Daten ddaten) {
 
108
        // für die Toolbar im Hauptfenster
 
109
        daten = ddaten;
 
110
        nrToolbar = MVConfig.SYSTEM_TOOLBAR_ALLES;
 
111
        nrIconKlein = MVConfig.SYSTEM_ICON_KLEIN_ALLES;
 
112
        buttonListToUse = buttonListAlles;
 
113
        startup();
 
114
    }
 
115
 
 
116
    private void startup() {
 
117
        // init
 
118
        this.setBackground(new java.awt.Color(204, 204, 204));
 
119
        this.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 153, 153)));
 
120
        this.setFloatable(false);
 
121
        filler__5 = new Filler(new java.awt.Dimension(5, 20), new java.awt.Dimension(5, 20), new java.awt.Dimension(5, 32767));
 
122
        filler__10 = new Filler(new java.awt.Dimension(10, 20), new java.awt.Dimension(10, 20), new java.awt.Dimension(10, 32767));
 
123
        filler__trenner = new javax.swing.Box.Filler(new java.awt.Dimension(1, 5), new java.awt.Dimension(1, 5), new java.awt.Dimension(32767, 5));
 
124
 
 
125
        jButtonFilmeLaden = new MVButton(new String[]{TOOLBAR_TAB_FILME, TOOLBAR_TAB_DOWNLOADS}, "Filmliste laden", "neue Filmliste laden", "filmlisteLaden_32.png", "filmlisteLaden_16.png");
 
126
        buttonListAlles.add(jButtonFilmeLaden);
 
127
        buttonListDownloads.add(jButtonFilmeLaden);
 
128
        jButtonInfo = new MVButton(new String[]{TOOLBAR_TAB_FILME, TOOLBAR_TAB_DOWNLOADS}, "Filminformation anzeigen", "Filminformation anzeigen", "info_32.png", "info_16.png");
 
129
        buttonListAlles.add(jButtonInfo);
 
130
        buttonListDownloads.add(jButtonInfo);
 
131
        jButtonFilmAbspielen = new MVButton(new String[]{TOOLBAR_TAB_FILME}, "Film abspielen", "Film abspielen", "film_start_32.png", "film_start_16.png");
 
132
        buttonListAlles.add(jButtonFilmAbspielen);
 
133
        jButtonFilmSpeichern = new MVButton(new String[]{TOOLBAR_TAB_FILME}, "Film aufzeichnen", "Film aufzeichnen", "film_rec_32.png", "film_rec_16.png");
 
134
        buttonListAlles.add(jButtonFilmSpeichern);
 
135
        jButtonDownloadAktualisieren = new MVButton(new String[]{TOOLBAR_TAB_DOWNLOADS}, "Downloads aktualisieren", "Downloads aktualisieren", "view-refresh_32.png", "view-refresh_16.png");
 
136
        buttonListAlles.add(jButtonDownloadAktualisieren);
 
137
        buttonListDownloads.add(jButtonDownloadAktualisieren);
 
138
        jButtonDownloadAlleStarten = new MVButton(new String[]{TOOLBAR_TAB_DOWNLOADS}, "alle Downloads starten", "alle Downloads starten", "download_alleStarten_32.png", "download_alleStarten_16.png");
 
139
        buttonListAlles.add(jButtonDownloadAlleStarten);
 
140
        buttonListDownloads.add(jButtonDownloadAlleStarten);
 
141
        jButtonDownloadFilmStarten = new MVButton(new String[]{TOOLBAR_TAB_DOWNLOADS}, "Film Starten", "gespeicherten Film abspielen", "film_start_32.png", "film_start_16.png");
 
142
        buttonListAlles.add(jButtonDownloadFilmStarten);
 
143
        buttonListDownloads.add(jButtonDownloadFilmStarten);
 
144
        jButtonDownloadZurueckstellen = new MVButton(new String[]{TOOLBAR_TAB_DOWNLOADS}, "Download zurückstellen", "Download zurückstellen", "undo_32.png", "undo_16.png");
 
145
        buttonListAlles.add(jButtonDownloadZurueckstellen);
 
146
        buttonListDownloads.add(jButtonDownloadZurueckstellen);
 
147
        jButtonDownloadLoeschen = new MVButton(new String[]{TOOLBAR_TAB_DOWNLOADS}, "Download dauerhaft löschen", "Download dauerhaft löschen", "download_del_32.png", "download_del_16.png");
 
148
        buttonListAlles.add(jButtonDownloadLoeschen);
 
149
        buttonListDownloads.add(jButtonDownloadLoeschen);
 
150
        jButtonDownloadAufraeumen = new MVButton(new String[]{TOOLBAR_TAB_DOWNLOADS}, "Downloads aufräumen", "Liste der Downloads aufräumen", "download_clear_32.png", "download_clear_16.png");
 
151
        buttonListAlles.add(jButtonDownloadAufraeumen);
 
152
        buttonListDownloads.add(jButtonDownloadAufraeumen);
 
153
        jButtonAbosEinschalten = new MVButton(new String[]{TOOLBAR_TAB_ABOS}, "Abos einschalten", "Abos einschalten", "ja_32.png", "ja_16.png");
 
154
        buttonListAlles.add(jButtonAbosEinschalten);
 
155
        buttonListAbos.add(jButtonAbosEinschalten);
 
156
        jButtonAbosAusschalten = new MVButton(new String[]{TOOLBAR_TAB_ABOS}, "Abos deaktivieren", "Abos deaktivieren", "nein_32.png", "nein_16.png");
 
157
        buttonListAlles.add(jButtonAbosAusschalten);
 
158
        buttonListAbos.add(jButtonAbosAusschalten);
 
159
        jButtonAbosLoeschen = new MVButton(new String[]{TOOLBAR_TAB_ABOS}, "Abos löschen", "Abos löschen", "del_32.png", "del_16.png");
 
160
        buttonListAlles.add(jButtonAbosLoeschen);
 
161
        buttonListAbos.add(jButtonAbosLoeschen);
 
162
        jButtonAboAendern = new MVButton(new String[]{TOOLBAR_TAB_ABOS}, "Abo ändern", "Abo ändern", "configure_32.png", "configure_16.png");
 
163
        buttonListAlles.add(jButtonAboAendern);
 
164
        buttonListAbos.add(jButtonAboAendern);
 
165
        jButtonFilterPanel = new JButton();
 
166
 
 
167
        jTextFieldFilter = new org.jdesktop.swingx.JXSearchField();
 
168
 
 
169
        this.add(filler__5);
 
170
        if (!extern) {
 
171
            this.add(jButtonFilmeLaden);
 
172
            this.add(filler__10);
 
173
        }
 
174
        if (!extern || state.equals(TOOLBAR_TAB_DOWNLOADS)) {
 
175
            this.add(jButtonInfo);
 
176
            this.add(filler__10);
 
177
        }
 
178
        if (!extern) {
 
179
            this.add(jButtonFilmAbspielen);
 
180
            this.add(jButtonFilmSpeichern);
 
181
            this.add(filler__10);
 
182
        }
 
183
        if (!extern || state.equals(TOOLBAR_TAB_DOWNLOADS)) {
 
184
            this.add(jButtonDownloadAktualisieren);
 
185
            this.add(jButtonDownloadAlleStarten);
 
186
            this.add(jButtonDownloadFilmStarten);
 
187
            this.add(jButtonDownloadZurueckstellen);
 
188
            this.add(jButtonDownloadLoeschen);
 
189
            this.add(jButtonDownloadAufraeumen);
 
190
        }
 
191
        if (!extern) {
 
192
            this.add(filler__10);
 
193
        }
 
194
        if (!extern || state.equals(TOOLBAR_TAB_ABOS)) {
 
195
            this.add(jButtonAbosEinschalten);
 
196
            this.add(jButtonAbosAusschalten);
 
197
            this.add(jButtonAbosLoeschen);
 
198
            this.add(jButtonAboAendern);
 
199
        }
 
200
        if (!extern) {
 
201
            this.add(filler__trenner);
 
202
            // Searchfield
 
203
            jTextFieldFilter.setBackground(new java.awt.Color(230, 230, 230));
 
204
            jTextFieldFilter.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
 
205
            jTextFieldFilter.setToolTipText("Thema/Titel suchen");
 
206
            jTextFieldFilter.setDisabledTextColor(new java.awt.Color(102, 102, 102));
 
207
            jTextFieldFilter.setMaximumSize(new java.awt.Dimension(300, 35));
 
208
            jTextFieldFilter.setName("Thema/Titel");
 
209
            jTextFieldFilter.setPreferredSize(new java.awt.Dimension(300, 25));
 
210
            jTextFieldFilter.setPrompt("Thema/Titel");
 
211
            jTextFieldFilter.setLayoutStyle(JXSearchField.LayoutStyle.MAC);
 
212
            jTextFieldFilter.setSearchMode(JXSearchField.SearchMode.INSTANT);
 
213
            jTextFieldFilter.setUseNativeSearchFieldIfPossible(true);
 
214
            jTextFieldFilter.getFindButton().setIcon(GetIcon.getProgramIcon("suchen_22.png"));
 
215
            jTextFieldFilter.addActionListener(new ActionListener() {
 
216
                @Override
 
217
                public void actionPerformed(ActionEvent actionEvent) {
 
218
                    Filter.checkPattern2(jTextFieldFilter);
 
219
                    daten.guiFilme.guiFilmeFiltern();
 
220
                }
 
221
            });
 
222
            //looks like you need to explicitly set this on Linux...
 
223
            jTextFieldFilter.setInstantSearchDelay(150);
 
224
            this.add(jTextFieldFilter);
 
225
 
 
226
            // Button Filter
 
227
            jButtonFilterPanel.setToolTipText("Erweiterte Suche (Filter) anzeigen/ausblenden");
 
228
            jButtonFilterPanel.setBorder(null);
 
229
            jButtonFilterPanel.setBorderPainted(false);
 
230
            jButtonFilterPanel.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
 
231
            jButtonFilterPanel.setMaximumSize(new java.awt.Dimension(40, 40));
 
232
            jButtonFilterPanel.setMinimumSize(new java.awt.Dimension(40, 40));
 
233
            jButtonFilterPanel.setOpaque(false);
 
234
            jButtonFilterPanel.setPreferredSize(new java.awt.Dimension(40, 40));
 
235
            jButtonFilterPanel.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
 
236
            jButtonFilterPanel.setIcon(GetIcon.getProgramIcon("filter_anzeigen_22.png"));
 
237
            this.add(jButtonFilterPanel);
 
238
 
 
239
            this.add(filler__10);
 
240
        }
 
241
        // Icons
 
242
        if (!nrIconKlein.isEmpty()) {
 
243
            setIcon(Boolean.parseBoolean(Daten.mVConfig.get(nrIconKlein)));
 
244
        }
 
245
        loadVisible();
 
246
        initListener();
 
247
    }
 
248
 
 
249
    public final void setIcon(boolean klein) {
 
250
        Daten.mVConfig.add(nrIconKlein, Boolean.toString(klein));
 
251
        beobMausToolBar.itemKlein.setSelected(klein);
 
252
        jButtonFilmeLaden.setIcon();
 
253
        jButtonFilmAbspielen.setIcon();
 
254
        jButtonInfo.setIcon();
 
255
        jButtonFilmSpeichern.setIcon();
 
256
        jButtonDownloadAktualisieren.setIcon();
 
257
        jButtonDownloadAlleStarten.setIcon();
 
258
        jButtonDownloadFilmStarten.setIcon();
 
259
        jButtonDownloadZurueckstellen.setIcon();
 
260
        jButtonDownloadLoeschen.setIcon();
 
261
        jButtonDownloadAufraeumen.setIcon();
 
262
        jButtonAbosLoeschen.setIcon();
 
263
        jButtonAbosEinschalten.setIcon();
 
264
        jButtonAbosAusschalten.setIcon();
 
265
        jButtonAboAendern.setIcon();
 
266
        this.repaint();
 
267
    }
 
268
 
 
269
    public void setToolbar() {
 
270
        if (state != null) {
 
271
            setToolbar(state);
 
272
        }
 
273
    }
 
274
 
 
275
    public void setToolbar(String sstate) {
 
276
        state = sstate;
 
277
        boolean ok;
 
278
        filterAnzeigen();
 
279
        if (sstate.equals(TOOLBAR_NIX)) {
 
280
            for (MVButton b : buttonListToUse) {
 
281
                if (extern) {
 
282
                    b.setVisible(false);
 
283
                } else {
 
284
                    b.setEnabled(false);
 
285
                }
 
286
            }
 
287
        } else {
 
288
            for (MVButton b : buttonListToUse) {
 
289
                ok = false;
 
290
                if (b.sparte.contains(sstate)) {
 
291
                    b.setEnabled(true);
 
292
                    b.setVisible(b.anzeigen);
 
293
                    ok = true;
 
294
                }
 
295
                if (!ok) {
 
296
                    if (extern) {
 
297
                        b.setVisible(false);
 
298
                    } else {
 
299
                        if (!Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_DOWNLOAD)) && b.sparte.contains(TOOLBAR_TAB_DOWNLOADS)
 
300
                                || Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FENSTER_DOWNLOAD)) && b.sparte.contains(TOOLBAR_TAB_DOWNLOADS)) {
 
301
                            b.setVisible(false);
 
302
                        } else if (!Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_ABO)) && b.sparte.contains(TOOLBAR_TAB_ABOS)
 
303
                                || Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_FENSTER_ABO)) && b.sparte.contains(TOOLBAR_TAB_ABOS)) {
 
304
                            b.setVisible(false);
 
305
                        } else {
 
306
                            b.setEnabled(false);
 
307
                        }
 
308
                    }
 
309
                }
 
310
            }
 
311
        }
 
312
    }
 
313
 
 
314
    public void filterAnzeigen() {
 
315
        jTextFieldFilter.setEnabled(state.equals(TOOLBAR_TAB_FILME));
 
316
        if (!extern) {
 
317
            jTextFieldFilter.setVisible(!Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER)));
 
318
        } else {
 
319
            jTextFieldFilter.setVisible(false);
 
320
        }
 
321
    }
 
322
 
 
323
    public void loadVisible() {
 
324
        if (!nrToolbar.isEmpty()) {
 
325
            String[] b = Daten.mVConfig.get(nrToolbar).split(":");
 
326
            if (buttonListToUse.size() == b.length) {
 
327
                // ansonsten gibt es neue Button: dann alle anzeigen
 
328
                for (int i = 0; i < b.length; ++i) {
 
329
                    buttonListToUse.get(i).anzeigen = Boolean.parseBoolean(b[i]);
 
330
                    buttonListToUse.get(i).setVisible(Boolean.parseBoolean(b[i]));
 
331
                }
 
332
            }
 
333
        }
 
334
        setToolbar();
 
335
        if (!nrIconKlein.isEmpty()) {
 
336
            setIcon(Boolean.parseBoolean(Daten.mVConfig.get(nrIconKlein)));
 
337
        }
 
338
    }
 
339
 
 
340
    private void storeVisible() {
 
341
        if (!nrToolbar.isEmpty()) {
 
342
            Daten.mVConfig.add(nrToolbar, "");
 
343
            for (MVButton b : buttonListToUse) {
 
344
                if (!Daten.mVConfig.get(nrToolbar).isEmpty()) {
 
345
                    Daten.mVConfig.add(nrToolbar, Daten.mVConfig.get(nrToolbar) + ":");
 
346
                }
 
347
                Daten.mVConfig.add(nrToolbar, Daten.mVConfig.get(nrToolbar) + Boolean.toString(b.anzeigen));
 
348
            }
 
349
        }
 
350
    }
 
351
 
 
352
    private void initListener() {
 
353
        ListenerMediathekView.addListener(new ListenerMediathekView(ListenerMediathekView.EREIGNIS_PANEL_FILTER_ANZEIGEN, MVToolBar.class.getSimpleName()) {
 
354
            @Override
 
355
            public void ping() {
 
356
                filterAnzeigen();
 
357
            }
 
358
        });
 
359
        addMouseListener(beobMausToolBar);
 
360
        Daten.filmeLaden.addAdListener(new MSListenerFilmeLaden() {
 
361
            @Override
 
362
            public void start(MSListenerFilmeLadenEvent event) {
 
363
                //ddaten.infoPanel.setProgress();
 
364
                jButtonFilmeLaden.setEnabled(false);
 
365
            }
 
366
 
 
367
            @Override
 
368
            public void progress(MSListenerFilmeLadenEvent event) {
 
369
            }
 
370
 
 
371
            @Override
 
372
            public void fertig(MSListenerFilmeLadenEvent event) {
 
373
                jButtonFilmeLaden.setEnabled(true);
 
374
            }
 
375
        });
 
376
        jButtonFilmeLaden.addActionListener(new ActionListener() {
 
377
            @Override
 
378
            public void actionPerformed(ActionEvent e) {
 
379
                Daten.filmeLaden.filmeLaden(daten, false);
 
380
            }
 
381
        });
 
382
        jButtonFilmeLaden.addMouseListener(new MouseAdapter() {
 
383
            @Override
 
384
            public void mousePressed(MouseEvent arg0) {
 
385
                if (arg0.isPopupTrigger()) {
 
386
                    if (jButtonFilmeLaden.isEnabled()) {
 
387
                        Daten.filmeLaden.filmeLaden(daten, true);
 
388
                    }
 
389
                }
 
390
            }
 
391
 
 
392
            @Override
 
393
            public void mouseReleased(MouseEvent arg0) {
 
394
                if (arg0.isPopupTrigger()) {
 
395
                    if (jButtonFilmeLaden.isEnabled()) {
 
396
                        Daten.filmeLaden.filmeLaden(daten, true);
 
397
                    }
 
398
                }
 
399
            }
 
400
        });
 
401
        // Tab Filme
 
402
        jButtonFilmSpeichern.addActionListener(new ActionListener() {
 
403
            @Override
 
404
            public void actionPerformed(ActionEvent e) {
 
405
                daten.guiFilme.guiFilmeFilmSpeichern();
 
406
            }
 
407
        });
 
408
        jButtonFilmAbspielen.addActionListener(new ActionListener() {
 
409
            @Override
 
410
            public void actionPerformed(ActionEvent e) {
 
411
                daten.guiFilme.guiFilmeFilmAbspielen();
 
412
            }
 
413
        });
 
414
        jButtonInfo.addActionListener(new ActionListener() {
 
415
            @Override
 
416
            public void actionPerformed(ActionEvent e) {
 
417
                daten.filmInfoHud.show();
 
418
            }
 
419
        });
 
420
        // Tab Downloads
 
421
        jButtonDownloadAktualisieren.addActionListener(new ActionListener() {
 
422
            @Override
 
423
            public void actionPerformed(ActionEvent e) {
 
424
                daten.guiDownloads.aktualisieren();
 
425
            }
 
426
        });
 
427
        jButtonDownloadAufraeumen.addActionListener(new ActionListener() {
 
428
            @Override
 
429
            public void actionPerformed(ActionEvent e) {
 
430
                daten.guiDownloads.aufraeumen();
 
431
            }
 
432
        });
 
433
        jButtonDownloadLoeschen.addActionListener(new ActionListener() {
 
434
            @Override
 
435
            public void actionPerformed(ActionEvent e) {
 
436
                daten.guiDownloads.loeschen();
 
437
            }
 
438
        });
 
439
        jButtonDownloadAlleStarten.addActionListener(new ActionListener() {
 
440
            @Override
 
441
            public void actionPerformed(ActionEvent e) {
 
442
                daten.guiDownloads.starten(true);
 
443
            }
 
444
        });
 
445
        jButtonDownloadFilmStarten.addActionListener(new ActionListener() {
 
446
            @Override
 
447
            public void actionPerformed(ActionEvent e) {
 
448
                daten.guiDownloads.filmAbspielen();
 
449
            }
 
450
        });
 
451
        jButtonDownloadZurueckstellen.addActionListener(new ActionListener() {
 
452
            @Override
 
453
            public void actionPerformed(ActionEvent e) {
 
454
                daten.guiDownloads.zurueckstellen();
 
455
            }
 
456
        });
 
457
        // Tab Abo
 
458
        jButtonAbosEinschalten.addActionListener(new ActionListener() {
 
459
            @Override
 
460
            public void actionPerformed(ActionEvent e) {
 
461
                daten.guiAbo.einAus(true);
 
462
            }
 
463
        });
 
464
        jButtonAbosAusschalten.addActionListener(new ActionListener() {
 
465
            @Override
 
466
            public void actionPerformed(ActionEvent e) {
 
467
                daten.guiAbo.einAus(false);
 
468
            }
 
469
        });
 
470
        jButtonAbosLoeschen.addActionListener(new ActionListener() {
 
471
            @Override
 
472
            public void actionPerformed(ActionEvent e) {
 
473
                daten.guiAbo.loeschen();
 
474
            }
 
475
        });
 
476
        jButtonAboAendern.addActionListener(new ActionListener() {
 
477
            @Override
 
478
            public void actionPerformed(ActionEvent actionEvent) {
 
479
                daten.guiAbo.aendern();
 
480
            }
 
481
        });
 
482
        jButtonFilterPanel.addActionListener(new ActionListener() {
 
483
            @Override
 
484
            public void actionPerformed(ActionEvent e) {
 
485
                boolean b = !Boolean.parseBoolean(Daten.mVConfig.get(MVConfig.SYSTEM_VIS_FILTER));
 
486
                Daten.mVConfig.add(MVConfig.SYSTEM_VIS_FILTER, Boolean.toString(b));
 
487
                filterAnzeigen();
 
488
                ListenerMediathekView.notify(ListenerMediathekView.EREIGNIS_PANEL_FILTER_ANZEIGEN, MVToolBar.class.getName());
 
489
            }
 
490
        });
 
491
    }
 
492
 
 
493
    private class MVButton extends JButton {
 
494
 
 
495
        boolean anzeigen = true;
 
496
        String name = "";
 
497
        String imageIconKlein;
 
498
        String imageIconNormal;
 
499
        ArrayList<String> sparte = new ArrayList<>();
 
500
 
 
501
        public MVButton(String[] ssparte, String nname, String ttoolTip,
 
502
                String iimageIconNormal, String iimageIconKlein) {
 
503
            setToolTipText(ttoolTip);
 
504
            name = nname;
 
505
            imageIconKlein = iimageIconKlein;
 
506
            imageIconNormal = iimageIconNormal;
 
507
            sparte.addAll(Arrays.asList(ssparte));
 
508
            setOpaque(false);
 
509
            setBorder(javax.swing.BorderFactory.createEmptyBorder(8, 8, 8, 8));
 
510
            setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
 
511
            setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
 
512
        }
 
513
 
 
514
        void setIcon() {
 
515
            if (!nrIconKlein.isEmpty()) {
 
516
                if (Boolean.parseBoolean(Daten.mVConfig.get(nrIconKlein))) {
 
517
                    this.setIcon(GetIcon.getProgramIcon(imageIconKlein));
 
518
                } else {
 
519
                    this.setIcon(GetIcon.getProgramIcon(imageIconNormal));
 
520
                }
 
521
            }
 
522
        }
 
523
    }
 
524
 
 
525
    private class BeobMausToolBar extends MouseAdapter {
 
526
 
 
527
        JCheckBoxMenuItem itemKlein = new JCheckBoxMenuItem("kleine Icons");
 
528
        JMenuItem itemReset = new JMenuItem("zurücksetzen");
 
529
        JCheckBoxMenuItem[] box;
 
530
 
 
531
        public BeobMausToolBar() {
 
532
            if (!nrIconKlein.isEmpty()) {
 
533
                itemKlein.setSelected(Boolean.parseBoolean(Daten.mVConfig.get(nrIconKlein)));
 
534
            }
 
535
        }
 
536
 
 
537
        @Override
 
538
        public void mousePressed(MouseEvent arg0) {
 
539
            if (arg0.isPopupTrigger()) {
 
540
                showMenu(arg0);
 
541
            }
 
542
        }
 
543
 
 
544
        @Override
 
545
        public void mouseReleased(MouseEvent arg0) {
 
546
            if (arg0.isPopupTrigger()) {
 
547
                showMenu(arg0);
 
548
            }
 
549
        }
 
550
 
 
551
        private void showMenu(MouseEvent evt) {
 
552
            JPopupMenu jPopupMenu = new JPopupMenu();
 
553
            itemKlein.addActionListener(new ActionListener() {
 
554
                @Override
 
555
                public void actionPerformed(ActionEvent e) {
 
556
                    setIcon(itemKlein.isSelected());
 
557
                }
 
558
            });
 
559
            jPopupMenu.add(itemKlein);
 
560
            //##Trenner##
 
561
            jPopupMenu.addSeparator();
 
562
            //##Trenner##
 
563
 
 
564
            // Spalten ein-ausschalten
 
565
            box = new JCheckBoxMenuItem[buttonListToUse.size()];
 
566
            for (int i = 0; i < box.length; ++i) {
 
567
                box[i] = null;
 
568
                if (extern) {
 
569
                    for (String s : buttonListToUse.get(i).sparte) {
 
570
                        if (s.equals(state)) {
 
571
                            box[i] = new JCheckBoxMenuItem(buttonListToUse.get(i).name);
 
572
                            break;
 
573
                        }
 
574
                    }
 
575
                } else {
 
576
                    box[i] = new JCheckBoxMenuItem(buttonListToUse.get(i).name);
 
577
                }
 
578
                if (box[i] != null) {
 
579
                    box[i] = new JCheckBoxMenuItem(buttonListToUse.get(i).name);
 
580
                    box[i].setIcon(GetIcon.getProgramIcon(buttonListToUse.get(i).imageIconKlein));
 
581
                    box[i].setSelected(buttonListToUse.get(i).anzeigen);
 
582
                    box[i].addActionListener(new ActionListener() {
 
583
                        @Override
 
584
                        public void actionPerformed(ActionEvent e) {
 
585
                            setButtonList();
 
586
                            storeVisible();
 
587
                        }
 
588
                    });
 
589
                    jPopupMenu.add(box[i]);
 
590
                }
 
591
            }
 
592
            //##Trenner##
 
593
            jPopupMenu.addSeparator();
 
594
            //##Trenner##
 
595
            itemReset.addActionListener(new ActionListener() {
 
596
 
 
597
                @Override
 
598
                public void actionPerformed(ActionEvent e) {
 
599
                    resetToolbar();
 
600
                    storeVisible();
 
601
                }
 
602
            });
 
603
            jPopupMenu.add(itemReset);
 
604
 
 
605
            //anzeigen
 
606
            jPopupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
 
607
        }
 
608
 
 
609
        private void setButtonList() {
 
610
            if (box == null) {
 
611
                return;
 
612
            }
 
613
            for (int i = 0; i < box.length; ++i) {
 
614
                if (box[i] == null) {
 
615
                    continue;
 
616
                }
 
617
                buttonListToUse.get(i).anzeigen = box[i].isSelected();
 
618
                buttonListToUse.get(i).setVisible(box[i].isSelected());
 
619
            }
 
620
            setToolbar();
 
621
        }
 
622
 
 
623
        private void resetToolbar() {
 
624
            if (box == null) {
 
625
                return;
 
626
            }
 
627
            for (int i = 0; i < box.length; ++i) {
 
628
                if (box[i] == null) {
 
629
                    continue;
 
630
                }
 
631
                buttonListToUse.get(i).anzeigen = true;
 
632
                buttonListToUse.get(i).setVisible(true);
 
633
            }
 
634
            setToolbar();
 
635
            setIcon(false);
 
636
        }
 
637
 
 
638
    }
 
639
}