Archived
[MODIFIED] Neues Objekt für StreamDaten in Config, Daten werden nun schon teilweise bei Auswahl angezeigt
[ADDED] Updater-Thread
This commit is contained in:
@@ -6,8 +6,10 @@ import java.util.ArrayList;
|
||||
public class Config implements Serializable {
|
||||
private String LSPath;
|
||||
private ArrayList<String> streamNames;
|
||||
private ArrayList<StreamConfigItem> streamItems;
|
||||
public Config() {
|
||||
this.streamNames = new ArrayList<String>();
|
||||
this.streamItems = new ArrayList<StreamConfigItem>();
|
||||
}
|
||||
public void setLSPath(String path) {
|
||||
this.LSPath = path;
|
||||
@@ -17,19 +19,25 @@ public class Config implements Serializable {
|
||||
}
|
||||
|
||||
public String getStreamName(int streamIndex) {
|
||||
return this.streamNames.get(streamIndex);
|
||||
return this.streamItems.get(streamIndex).getName();
|
||||
//return this.streamNames.get(streamIndex);
|
||||
}
|
||||
|
||||
public void addStream(String streamName) {
|
||||
this.streamItems.add(new StreamConfigItem(streamName));
|
||||
this.streamNames.add(streamName);
|
||||
}
|
||||
public void removeStream(Object streamName) {
|
||||
this.streamNames.remove(streamName);
|
||||
public void removeStream(Object stream) {
|
||||
this.streamItems.remove(stream);
|
||||
this.streamNames.remove(stream);
|
||||
}
|
||||
public ArrayList<String> getStreams() {
|
||||
return this.streamNames;
|
||||
public ArrayList<StreamConfigItem> getStreams() {
|
||||
// public ArrayList<StreamConfigItem> getStreams() {
|
||||
return this.streamItems;
|
||||
// return this.streamNames;
|
||||
}
|
||||
public int getStreamCount() {
|
||||
return this.streamNames.size();
|
||||
return this.streamItems.size();
|
||||
// return this.streamNames.size();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
package com.ixab.ConfigHandling;
|
||||
|
||||
import com.ixab.StreamHandling.StreamInfo;
|
||||
|
||||
public class StreamConfig {
|
||||
private String name;
|
||||
|
||||
public StreamConfig(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getInfo() {
|
||||
StreamInfo.initStreamData(name);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(name);
|
||||
sb.append(" - ");
|
||||
String status = StreamInfo.getStatus();
|
||||
sb.append(status);
|
||||
if (!status.equals("offline")) {
|
||||
sb.append(" playing ");
|
||||
sb.append(StreamInfo.getGame());
|
||||
sb.append(" with ");
|
||||
sb.append(StreamInfo.getViewers());
|
||||
sb.append(" Viewers");
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.ixab.ConfigHandling;
|
||||
|
||||
import com.ixab.StreamHandling.StreamInfo;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class StreamConfigItem implements Serializable {
|
||||
private String name;
|
||||
private String title;
|
||||
private boolean status;
|
||||
private String category;
|
||||
private int viewers;
|
||||
private transient BufferedImage previewImage;
|
||||
|
||||
public StreamConfigItem(String name) {
|
||||
this.getInfo();
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
private void getInfo() {
|
||||
StreamInfo.initStreamData(this.name);
|
||||
String s = StreamInfo.getStatus();
|
||||
if (s.equals("online")) {
|
||||
this.status = true;
|
||||
} else {
|
||||
this.status = false;
|
||||
}
|
||||
this.viewers = Integer.parseInt(StreamInfo.getViewers());
|
||||
this.title = StreamInfo.getTitle();
|
||||
this.previewImage = StreamInfo.getPreviewImage();
|
||||
this.category = StreamInfo.getGame();
|
||||
}
|
||||
public void refreshInfo() {
|
||||
this.getInfo();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.getInfoText();
|
||||
}
|
||||
|
||||
public String getInfoText() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(this.name);
|
||||
sb.append(" - ");
|
||||
sb.append(this.getStatusString());
|
||||
if (this.status) {
|
||||
//sb.append(" spielt ");
|
||||
//sb.append(this.getCategory());
|
||||
sb.append(" mit ");
|
||||
sb.append(this.getViewers());
|
||||
sb.append(" Zuschauern");
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
public int getViewers() {
|
||||
return this.viewers;
|
||||
}
|
||||
public String getCategory() {
|
||||
return this.category;
|
||||
}
|
||||
public boolean getStatus() {
|
||||
return this.status;
|
||||
}
|
||||
public String getStatusString() {
|
||||
if (status) {
|
||||
return "online";
|
||||
} else {
|
||||
return "offline";
|
||||
}
|
||||
}
|
||||
public String getTitle() {
|
||||
return this.title;
|
||||
}
|
||||
public BufferedImage getPreviewImage() {
|
||||
return this.previewImage;
|
||||
}
|
||||
}
|
||||
@@ -49,7 +49,7 @@ public class AddStreamDialog extends JDialog {
|
||||
ConfigFileInstanceHandler.getConfig().addStream(textField1.getText());
|
||||
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = true;
|
||||
MainWindowGate.getMainWindow().initStreamsComboBox();
|
||||
MainWindowGate.getMainWindow().refreshStreamsComboBox();
|
||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = false;
|
||||
ErrorMessageGate.setErrorText("Stream \""+textField1.getText()+"\" hinzugefügt.");
|
||||
textField1.setText("");
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ixab.GUI;
|
||||
|
||||
import com.ixab.ConfigHandling.ConfigFileIOHandler;
|
||||
import com.ixab.ConfigHandling.ConfigFileInstanceHandler;
|
||||
import com.ixab.ConfigHandling.StreamConfigItem;
|
||||
import com.ixab.StreamHandling.StreamInfo;
|
||||
import com.ixab.StreamHandling.StreamOpener;
|
||||
|
||||
@@ -32,8 +33,39 @@ public class MainWindow {
|
||||
protected boolean lockStreamInfoGetter = false;
|
||||
|
||||
public MainWindow() {
|
||||
|
||||
//TODO: Updater thread
|
||||
Runnable r = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for (final StreamConfigItem sci :
|
||||
ConfigFileInstanceHandler.getConfig().getStreams()) {
|
||||
Runnable r2 = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
sci.refreshInfo();
|
||||
}
|
||||
};
|
||||
Thread t2 = new Thread(r2);
|
||||
t2.start();
|
||||
}
|
||||
makeAPause(60000);
|
||||
}
|
||||
private void makeAPause(long time) {
|
||||
try {
|
||||
System.out.println("schläft "+time/1000.0+" sek");
|
||||
Thread.sleep(time);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
};
|
||||
Thread t = new Thread(r);
|
||||
t.start();
|
||||
|
||||
|
||||
MainWindowGate.setMainWindow(this);
|
||||
this.initComboBoxes();
|
||||
this.refreshComboBoxes();
|
||||
buttonPlayStream.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
@@ -54,7 +86,7 @@ public class MainWindow {
|
||||
ConfigFileInstanceHandler.getConfig().removeStream(comboBoxStreams.getSelectedItem());
|
||||
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
||||
lockStreamInfoGetter = true;
|
||||
initStreamsComboBox();
|
||||
refreshStreamsComboBox();
|
||||
lockStreamInfoGetter = false;
|
||||
}
|
||||
});
|
||||
@@ -89,13 +121,15 @@ public class MainWindow {
|
||||
Runnable r = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
StreamInfo.initStreamData(comboBoxStreams.getSelectedItem().toString());
|
||||
textFieldStreamStatus.setText(StreamInfo.getStatus());
|
||||
textFieldStreamGame.setText(StreamInfo.getGame());
|
||||
textFieldStreamViewers.setText(StreamInfo.getViewers());
|
||||
textFieldStreamTitle.setText(StreamInfo.getTitle());
|
||||
panelPreviewImage.getGraphics().drawImage(StreamInfo.getPreviewImage(),0,0,null);
|
||||
ErrorMessageGate.setErrorText("Stream-Daten von "+comboBoxStreams.getSelectedItem().toString() + " geladen/aktualisiert.");
|
||||
//StreamInfo.initStreamData(comboBoxStreams.getSelectedItem().toString());
|
||||
StreamConfigItem sci = (StreamConfigItem) comboBoxStreams.getSelectedItem();
|
||||
sci.refreshInfo();
|
||||
textFieldStreamStatus.setText(sci.getStatusString());
|
||||
textFieldStreamGame.setText(sci.getCategory());
|
||||
textFieldStreamViewers.setText(""+sci.getViewers()); // TODO: schöner machen
|
||||
textFieldStreamTitle.setText(sci.getTitle());
|
||||
panelPreviewImage.getGraphics().drawImage(sci.getPreviewImage(),0,0,null);
|
||||
ErrorMessageGate.setErrorText("Stream-Daten von "+sci.getName()+ " geladen/aktualisiert.");
|
||||
}
|
||||
};
|
||||
Thread t = new Thread(r);
|
||||
@@ -107,18 +141,18 @@ public class MainWindow {
|
||||
AddStreamDialog as = new AddStreamDialog();
|
||||
as.create();
|
||||
}
|
||||
private void initComboBoxes() {
|
||||
initQualityComboBox();
|
||||
initStreamsComboBox();
|
||||
private void refreshComboBoxes() {
|
||||
refreshQualityComboBox();
|
||||
refreshStreamsComboBox();
|
||||
}
|
||||
protected void initStreamsComboBox() {
|
||||
protected void refreshStreamsComboBox() {
|
||||
comboBoxStreams.removeAllItems();
|
||||
for (String streamName :
|
||||
for (StreamConfigItem stream :
|
||||
ConfigFileInstanceHandler.getConfig().getStreams()) {
|
||||
comboBoxStreams.addItem(streamName);
|
||||
comboBoxStreams.addItem(stream);
|
||||
}
|
||||
}
|
||||
private void initQualityComboBox() {
|
||||
private void refreshQualityComboBox() {
|
||||
comboBoxQuality.removeAllItems();
|
||||
comboBoxQuality.addItem("best"); comboBoxQuality.addItem("high"); comboBoxQuality.addItem("medium"); comboBoxQuality.addItem("low"); comboBoxQuality.addItem("mobile");
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ public class SettingsWindow extends JDialog {
|
||||
}
|
||||
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = true;
|
||||
MainWindowGate.getMainWindow().initStreamsComboBox();
|
||||
MainWindowGate.getMainWindow().refreshStreamsComboBox();
|
||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = false;
|
||||
}
|
||||
buttonImportUserData.setText(old);
|
||||
|
||||
@@ -47,7 +47,7 @@ public class StreamInfo {
|
||||
}
|
||||
public static BufferedImage getPreviewImage() {
|
||||
if (streamPreviewData == null) {
|
||||
BufferedImage c = new BufferedImage(1,1,0);
|
||||
BufferedImage c = new BufferedImage(1,1,1);
|
||||
return c;
|
||||
} else {
|
||||
URL url = null;
|
||||
|
||||
Reference in New Issue
Block a user