3
* Copyright (C) 2008 W. Xaver
4
* W.Xaver[at]googlemail.com
5
* http://zdfmediathk.sourceforge.net/
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
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.
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/>.
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;
31
public class PanelSenderLaden extends JPanel {
33
private JButton[] buttonSender;
34
private final String[] senderArray;
35
private FilmeLaden filmeLaden;
37
public PanelSenderLaden(FilmeLaden filmeLaden_) {
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]));
51
jButtonStop.addActionListener(new ActionListener() {
53
public void actionPerformed(ActionEvent e) {
54
filmeLaden.setStop(true);
58
filmeLaden.addAdListener(new MSListenerFilmeLaden() {
60
public void progress(MSListenerFilmeLadenEvent event) {
62
jProgressBar1.setIndeterminate(true);
63
jProgressBar1.setMaximum(0);
64
jProgressBar1.setMinimum(0);
65
jProgressBar1.setValue(0);
66
jProgressBar1.setStringPainted(false);
68
jProgressBar1.setIndeterminate(false);
69
jProgressBar1.setMaximum(event.max);
70
jProgressBar1.setMinimum(0);
71
jProgressBar1.setValue(event.progress);
72
jProgressBar1.setStringPainted(true);
74
jLabelProgress.setText(textLaenge(80, event.text, true /* mitte */, false /*addVorne*/));
75
jLabelAnzahl.setText(event.count + "");
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() + "");
88
for (JButton button : buttonSender) {
89
button.setEnabled(true);
95
private void addSender() {
96
panelSender.removeAll();
97
panelSender.setLayout(new GridLayout(0, 5));
99
for (String sender : senderArray) {
100
JButton btn = buttonSender[nr];
102
panelSender.add(btn);
105
panelSender.repaint();
108
private static String textLaenge(int max, String text, boolean mitte, boolean addVorne) {
109
if (text.length() > max) {
111
text = text.substring(0, 25) + " .... " + text.substring(text.length() - (max - 31));
113
text = text.substring(0, max - 1);
116
while (text.length() < max) {
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.
131
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
132
private void initComponents() {
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();
141
panelSender.setBorder(javax.swing.BorderFactory.createTitledBorder("Sender"));
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)
149
panelSenderLayout.setVerticalGroup(
150
panelSenderLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
151
.addGap(0, 72, Short.MAX_VALUE)
154
jLabelProgress.setText("Fortschritt!");
156
jButtonStop.setText("Stop");
157
jButtonStop.setToolTipText("Abbrechen");
159
jLabel1.setText("Anzahl Filme (Suchen):");
161
jLabelAnzahl.setText("-1");
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()
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)))
185
layout.setVerticalGroup(
186
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
187
.addGroup(layout.createSequentialGroup()
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))
203
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jButtonStop, jProgressBar1});
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
215
private class BeobSenderLaden implements ActionListener {
217
private final String sender;
219
public BeobSenderLaden(String ssender) {
224
public void actionPerformed(ActionEvent e) {
225
jLabelProgress.setText("");
226
jLabelAnzahl.setText("");
227
for (JButton aButtonSender : buttonSender) {
228
aButtonSender.setEnabled(false);
230
filmeLaden.updateSender(new String[]{sender} /* senderAllesLaden */);