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

« back to all changes in this revision

Viewing changes to src/msearch/gui/PanelSenderLaden.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 msearch.gui;
 
21
 
 
22
import java.awt.GridLayout;
 
23
import java.awt.event.ActionEvent;
 
24
import java.awt.event.ActionListener;
 
25
import javax.swing.JButton;
 
26
import javax.swing.JPanel;
 
27
import msearch.SearchGui;
 
28
import msearch.filmeSuchen.MSListenerFilmeLaden;
 
29
import msearch.filmeSuchen.MSListenerFilmeLadenEvent;
 
30
 
 
31
public class PanelSenderLaden extends JPanel {
 
32
 
 
33
    private JButton[] buttonSender;
 
34
    private final String[] senderArray;
 
35
    private FilmeLaden filmeLaden;
 
36
 
 
37
    public PanelSenderLaden(FilmeLaden filmeLaden_) {
 
38
        super();
 
39
        initComponents();
 
40
        filmeLaden = filmeLaden_;
 
41
        jLabelAnzahl.setText("");
 
42
        senderArray = filmeLaden.getSenderNamen();
 
43
        buttonSender = new JButton[senderArray.length];
 
44
        for (int i = 0; i < filmeLaden.getSenderNamen().length; ++i) {
 
45
            buttonSender[i] = new JButton(senderArray[i]);
 
46
            buttonSender[i].addActionListener(new BeobSenderLaden(senderArray[i]));
 
47
        }
 
48
 
 
49
        addSender();
 
50
 
 
51
        jButtonStop.addActionListener(new ActionListener() {
 
52
            @Override
 
53
            public void actionPerformed(ActionEvent e) {
 
54
                filmeLaden.setStop(true);
 
55
            }
 
56
        });
 
57
 
 
58
        filmeLaden.addAdListener(new MSListenerFilmeLaden() {
 
59
            @Override
 
60
            public void progress(MSListenerFilmeLadenEvent event) {
 
61
                if (event.max == 0) {
 
62
                    jProgressBar1.setIndeterminate(true);
 
63
                    jProgressBar1.setMaximum(0);
 
64
                    jProgressBar1.setMinimum(0);
 
65
                    jProgressBar1.setValue(0);
 
66
                    jProgressBar1.setStringPainted(false);
 
67
                } else {
 
68
                    jProgressBar1.setIndeterminate(false);
 
69
                    jProgressBar1.setMaximum(event.max);
 
70
                    jProgressBar1.setMinimum(0);
 
71
                    jProgressBar1.setValue(event.progress);
 
72
                    jProgressBar1.setStringPainted(true);
 
73
                }
 
74
                jLabelProgress.setText(textLaenge(80, event.text, true /* mitte */, false /*addVorne*/));
 
75
                jLabelAnzahl.setText(event.count + "");
 
76
            }
 
77
 
 
78
            @Override
 
79
            public void fertig(MSListenerFilmeLadenEvent event) {
 
80
                jProgressBar1.setIndeterminate(false);
 
81
                jProgressBar1.setMaximum(0);
 
82
                jProgressBar1.setMinimum(0);
 
83
                jProgressBar1.setValue(0);
 
84
                jProgressBar1.setStringPainted(false);
 
85
                jLabelProgress.setText("");
 
86
                SearchGui.jLabelAnzahl.setText(SearchGui.listeFilme.size() + "");
 
87
 
 
88
                for (JButton button : buttonSender) {
 
89
                    button.setEnabled(true);
 
90
                }
 
91
            }
 
92
        });
 
93
    }
 
94
 
 
95
    private void addSender() {
 
96
        panelSender.removeAll();
 
97
        panelSender.setLayout(new GridLayout(0, 5));
 
98
        int nr = 0;
 
99
        for (String sender : senderArray) {
 
100
            JButton btn = buttonSender[nr];
 
101
            btn.setText(sender);
 
102
            panelSender.add(btn);
 
103
            ++nr;
 
104
        }
 
105
        panelSender.repaint();
 
106
    }
 
107
 
 
108
    private static String textLaenge(int max, String text, boolean mitte, boolean addVorne) {
 
109
        if (text.length() > max) {
 
110
            if (mitte) {
 
111
                text = text.substring(0, 25) + " .... " + text.substring(text.length() - (max - 31));
 
112
            } else {
 
113
                text = text.substring(0, max - 1);
 
114
            }
 
115
        }
 
116
        while (text.length() < max) {
 
117
            if (addVorne) {
 
118
                text = " " + text;
 
119
            } else {
 
120
                text = text + " ";
 
121
            }
 
122
        }
 
123
        return text;
 
124
    }
 
125
 
 
126
    /** This method is called from within the constructor to
 
127
     * initialize the form.
 
128
     * WARNING: Do NOT modify this code. The content of this method is
 
129
     * always regenerated by the Form Editor.
 
130
     */
 
131
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
 
132
    private void initComponents() {
 
133
 
 
134
        panelSender = new javax.swing.JPanel();
 
135
        jProgressBar1 = new javax.swing.JProgressBar();
 
136
        jLabelProgress = new javax.swing.JLabel();
 
137
        jButtonStop = new javax.swing.JButton();
 
138
        jLabel1 = new javax.swing.JLabel();
 
139
        jLabelAnzahl = new javax.swing.JLabel();
 
140
 
 
141
        panelSender.setBorder(javax.swing.BorderFactory.createTitledBorder("Sender"));
 
142
 
 
143
        javax.swing.GroupLayout panelSenderLayout = new javax.swing.GroupLayout(panelSender);
 
144
        panelSender.setLayout(panelSenderLayout);
 
145
        panelSenderLayout.setHorizontalGroup(
 
146
            panelSenderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
147
            .addGap(0, 152, Short.MAX_VALUE)
 
148
        );
 
149
        panelSenderLayout.setVerticalGroup(
 
150
            panelSenderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
151
            .addGap(0, 72, Short.MAX_VALUE)
 
152
        );
 
153
 
 
154
        jLabelProgress.setText("Fortschritt!");
 
155
 
 
156
        jButtonStop.setText("Stop");
 
157
        jButtonStop.setToolTipText("Abbrechen");
 
158
 
 
159
        jLabel1.setText("Anzahl Filme (Suchen):");
 
160
 
 
161
        jLabelAnzahl.setText("-1");
 
162
 
 
163
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
 
164
        this.setLayout(layout);
 
165
        layout.setHorizontalGroup(
 
166
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
167
            .addGroup(layout.createSequentialGroup()
 
168
                .addContainerGap()
 
169
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
170
                    .addComponent(jLabelProgress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
 
171
                    .addGroup(layout.createSequentialGroup()
 
172
                        .addComponent(jProgressBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 507, Short.MAX_VALUE)
 
173
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 
174
                        .addComponent(jButtonStop))
 
175
                    .addGroup(layout.createSequentialGroup()
 
176
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
177
                            .addComponent(panelSender, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 
178
                            .addGroup(layout.createSequentialGroup()
 
179
                                .addComponent(jLabel1)
 
180
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 
181
                                .addComponent(jLabelAnzahl)))
 
182
                        .addGap(0, 0, Short.MAX_VALUE)))
 
183
                .addContainerGap())
 
184
        );
 
185
        layout.setVerticalGroup(
 
186
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
187
            .addGroup(layout.createSequentialGroup()
 
188
                .addContainerGap()
 
189
                .addComponent(panelSender, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 
190
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 262, Short.MAX_VALUE)
 
191
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 
192
                    .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
 
193
                    .addComponent(jButtonStop))
 
194
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 
195
                .addComponent(jLabelProgress)
 
196
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 
197
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 
198
                    .addComponent(jLabel1)
 
199
                    .addComponent(jLabelAnzahl))
 
200
                .addContainerGap())
 
201
        );
 
202
 
 
203
        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButtonStop, jProgressBar1});
 
204
 
 
205
    }// </editor-fold>//GEN-END:initComponents
 
206
    // Variables declaration - do not modify//GEN-BEGIN:variables
 
207
    private javax.swing.JButton jButtonStop;
 
208
    private javax.swing.JLabel jLabel1;
 
209
    private javax.swing.JLabel jLabelAnzahl;
 
210
    private javax.swing.JLabel jLabelProgress;
 
211
    private javax.swing.JProgressBar jProgressBar1;
 
212
    private javax.swing.JPanel panelSender;
 
213
    // End of variables declaration//GEN-END:variables
 
214
 
 
215
    private class BeobSenderLaden implements ActionListener {
 
216
 
 
217
        private final String sender;
 
218
 
 
219
        public BeobSenderLaden(String ssender) {
 
220
            sender = ssender;
 
221
        }
 
222
 
 
223
        @Override
 
224
        public void actionPerformed(ActionEvent e) {
 
225
            jLabelProgress.setText("");
 
226
            jLabelAnzahl.setText("");
 
227
            for (JButton aButtonSender : buttonSender) {
 
228
                aButtonSender.setEnabled(false);
 
229
            }
 
230
            filmeLaden.updateSender(new String[]{sender} /* senderAllesLaden */);
 
231
        }
 
232
    }
 
233
 
 
234
}