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 {
|
public class Config implements Serializable {
|
||||||
private String LSPath;
|
private String LSPath;
|
||||||
private ArrayList<String> streamNames;
|
private ArrayList<String> streamNames;
|
||||||
|
private ArrayList<StreamConfigItem> streamItems;
|
||||||
public Config() {
|
public Config() {
|
||||||
this.streamNames = new ArrayList<String>();
|
this.streamNames = new ArrayList<String>();
|
||||||
|
this.streamItems = new ArrayList<StreamConfigItem>();
|
||||||
}
|
}
|
||||||
public void setLSPath(String path) {
|
public void setLSPath(String path) {
|
||||||
this.LSPath = path;
|
this.LSPath = path;
|
||||||
@@ -17,19 +19,25 @@ public class Config implements Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getStreamName(int streamIndex) {
|
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) {
|
public void addStream(String streamName) {
|
||||||
|
this.streamItems.add(new StreamConfigItem(streamName));
|
||||||
this.streamNames.add(streamName);
|
this.streamNames.add(streamName);
|
||||||
}
|
}
|
||||||
public void removeStream(Object streamName) {
|
public void removeStream(Object stream) {
|
||||||
this.streamNames.remove(streamName);
|
this.streamItems.remove(stream);
|
||||||
|
this.streamNames.remove(stream);
|
||||||
}
|
}
|
||||||
public ArrayList<String> getStreams() {
|
public ArrayList<StreamConfigItem> getStreams() {
|
||||||
return this.streamNames;
|
// public ArrayList<StreamConfigItem> getStreams() {
|
||||||
|
return this.streamItems;
|
||||||
|
// return this.streamNames;
|
||||||
}
|
}
|
||||||
public int getStreamCount() {
|
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());
|
ConfigFileInstanceHandler.getConfig().addStream(textField1.getText());
|
||||||
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
||||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = true;
|
MainWindowGate.getMainWindow().lockStreamInfoGetter = true;
|
||||||
MainWindowGate.getMainWindow().initStreamsComboBox();
|
MainWindowGate.getMainWindow().refreshStreamsComboBox();
|
||||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = false;
|
MainWindowGate.getMainWindow().lockStreamInfoGetter = false;
|
||||||
ErrorMessageGate.setErrorText("Stream \""+textField1.getText()+"\" hinzugefügt.");
|
ErrorMessageGate.setErrorText("Stream \""+textField1.getText()+"\" hinzugefügt.");
|
||||||
textField1.setText("");
|
textField1.setText("");
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.ixab.GUI;
|
|||||||
|
|
||||||
import com.ixab.ConfigHandling.ConfigFileIOHandler;
|
import com.ixab.ConfigHandling.ConfigFileIOHandler;
|
||||||
import com.ixab.ConfigHandling.ConfigFileInstanceHandler;
|
import com.ixab.ConfigHandling.ConfigFileInstanceHandler;
|
||||||
|
import com.ixab.ConfigHandling.StreamConfigItem;
|
||||||
import com.ixab.StreamHandling.StreamInfo;
|
import com.ixab.StreamHandling.StreamInfo;
|
||||||
import com.ixab.StreamHandling.StreamOpener;
|
import com.ixab.StreamHandling.StreamOpener;
|
||||||
|
|
||||||
@@ -32,8 +33,39 @@ public class MainWindow {
|
|||||||
protected boolean lockStreamInfoGetter = false;
|
protected boolean lockStreamInfoGetter = false;
|
||||||
|
|
||||||
public MainWindow() {
|
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);
|
MainWindowGate.setMainWindow(this);
|
||||||
this.initComboBoxes();
|
this.refreshComboBoxes();
|
||||||
buttonPlayStream.addActionListener(new ActionListener() {
|
buttonPlayStream.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
@@ -54,7 +86,7 @@ public class MainWindow {
|
|||||||
ConfigFileInstanceHandler.getConfig().removeStream(comboBoxStreams.getSelectedItem());
|
ConfigFileInstanceHandler.getConfig().removeStream(comboBoxStreams.getSelectedItem());
|
||||||
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
||||||
lockStreamInfoGetter = true;
|
lockStreamInfoGetter = true;
|
||||||
initStreamsComboBox();
|
refreshStreamsComboBox();
|
||||||
lockStreamInfoGetter = false;
|
lockStreamInfoGetter = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -89,13 +121,15 @@ public class MainWindow {
|
|||||||
Runnable r = new Runnable() {
|
Runnable r = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
StreamInfo.initStreamData(comboBoxStreams.getSelectedItem().toString());
|
//StreamInfo.initStreamData(comboBoxStreams.getSelectedItem().toString());
|
||||||
textFieldStreamStatus.setText(StreamInfo.getStatus());
|
StreamConfigItem sci = (StreamConfigItem) comboBoxStreams.getSelectedItem();
|
||||||
textFieldStreamGame.setText(StreamInfo.getGame());
|
sci.refreshInfo();
|
||||||
textFieldStreamViewers.setText(StreamInfo.getViewers());
|
textFieldStreamStatus.setText(sci.getStatusString());
|
||||||
textFieldStreamTitle.setText(StreamInfo.getTitle());
|
textFieldStreamGame.setText(sci.getCategory());
|
||||||
panelPreviewImage.getGraphics().drawImage(StreamInfo.getPreviewImage(),0,0,null);
|
textFieldStreamViewers.setText(""+sci.getViewers()); // TODO: schöner machen
|
||||||
ErrorMessageGate.setErrorText("Stream-Daten von "+comboBoxStreams.getSelectedItem().toString() + " geladen/aktualisiert.");
|
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);
|
Thread t = new Thread(r);
|
||||||
@@ -107,18 +141,18 @@ public class MainWindow {
|
|||||||
AddStreamDialog as = new AddStreamDialog();
|
AddStreamDialog as = new AddStreamDialog();
|
||||||
as.create();
|
as.create();
|
||||||
}
|
}
|
||||||
private void initComboBoxes() {
|
private void refreshComboBoxes() {
|
||||||
initQualityComboBox();
|
refreshQualityComboBox();
|
||||||
initStreamsComboBox();
|
refreshStreamsComboBox();
|
||||||
}
|
}
|
||||||
protected void initStreamsComboBox() {
|
protected void refreshStreamsComboBox() {
|
||||||
comboBoxStreams.removeAllItems();
|
comboBoxStreams.removeAllItems();
|
||||||
for (String streamName :
|
for (StreamConfigItem stream :
|
||||||
ConfigFileInstanceHandler.getConfig().getStreams()) {
|
ConfigFileInstanceHandler.getConfig().getStreams()) {
|
||||||
comboBoxStreams.addItem(streamName);
|
comboBoxStreams.addItem(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void initQualityComboBox() {
|
private void refreshQualityComboBox() {
|
||||||
comboBoxQuality.removeAllItems();
|
comboBoxQuality.removeAllItems();
|
||||||
comboBoxQuality.addItem("best"); comboBoxQuality.addItem("high"); comboBoxQuality.addItem("medium"); comboBoxQuality.addItem("low"); comboBoxQuality.addItem("mobile");
|
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());
|
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
|
||||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = true;
|
MainWindowGate.getMainWindow().lockStreamInfoGetter = true;
|
||||||
MainWindowGate.getMainWindow().initStreamsComboBox();
|
MainWindowGate.getMainWindow().refreshStreamsComboBox();
|
||||||
MainWindowGate.getMainWindow().lockStreamInfoGetter = false;
|
MainWindowGate.getMainWindow().lockStreamInfoGetter = false;
|
||||||
}
|
}
|
||||||
buttonImportUserData.setText(old);
|
buttonImportUserData.setText(old);
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class StreamInfo {
|
|||||||
}
|
}
|
||||||
public static BufferedImage getPreviewImage() {
|
public static BufferedImage getPreviewImage() {
|
||||||
if (streamPreviewData == null) {
|
if (streamPreviewData == null) {
|
||||||
BufferedImage c = new BufferedImage(1,1,0);
|
BufferedImage c = new BufferedImage(1,1,1);
|
||||||
return c;
|
return c;
|
||||||
} else {
|
} else {
|
||||||
URL url = null;
|
URL url = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user