[ADDED] Persistierung der Checkbox-Auswahl

This commit is contained in:
da
2015-12-01 18:33:09 +01:00
parent b3c79235ed
commit 0ef94637f9
5 changed files with 92 additions and 6 deletions
+35
View File
@@ -6,11 +6,43 @@ import java.util.ArrayList;
public class Config implements Serializable {
private String LSPath;
private ArrayList<StreamConfigItem> streamItems;
public int getSortStreamsBy() {
return sortStreamsBy;
}
public void setSortStreamsBy(int sortStreamsBy) {
this.sortStreamsBy = sortStreamsBy;
}
private int sortStreamsBy;
public int getLastSelectedStream() {
return lastSelectedStream;
}
public void setLastSelectedStream(int lastSelectedStream) {
this.lastSelectedStream = lastSelectedStream;
}
private int lastSelectedStream;
public int getLastSelectedQuality() {
return lastSelectedQuality;
}
public void setLastSelectedQuality(int lastSelectedQuality) {
this.lastSelectedQuality = lastSelectedQuality;
ConfigFileIOHandler.save();
}
private int lastSelectedQuality;
public Config() {
this.streamItems = new ArrayList<StreamConfigItem>();
setSortStreamsBy(1);
setLastSelectedStream(-1);
setLastSelectedQuality(-1);
}
public void setLSPath(String path) {
this.LSPath = path;
ConfigFileIOHandler.save();
}
public String getLSPath() {
return this.LSPath;
@@ -21,9 +53,11 @@ public class Config implements Serializable {
}
public void addStream(String streamName) {
this.streamItems.add(new StreamConfigItem(streamName));
ConfigFileIOHandler.save();
}
public void removeStream(Object stream) {
this.streamItems.remove(stream);
ConfigFileIOHandler.save();
}
public ArrayList<StreamConfigItem> getStreams() {
return this.streamItems;
@@ -33,5 +67,6 @@ public class Config implements Serializable {
}
public void replaceStreamList(ArrayList<StreamConfigItem> list) {
this.streamItems = list;
ConfigFileIOHandler.save();
}
}
@@ -4,6 +4,31 @@ import java.util.ArrayList;
public class StreamConfigSorter {
public static ArrayList<StreamConfigItem> sortStreamItemArrayList(ArrayList<StreamConfigItem> list) {
switch (ConfigFileInstanceHandler.getConfig().getSortStreamsBy()) {
case 1: return sortByStatus(list);
case 2: return sortByViewerCountAsc(list);
case 3: return sortByViewerCountDesc(list);
case 4: return sortByNameAsc(list);
default: return sortByStatus(list);
}
}
private static ArrayList<StreamConfigItem> sortByViewerCountAsc(ArrayList<StreamConfigItem> list) {
// TODO: implement
return null;
}
private static ArrayList<StreamConfigItem> sortByViewerCountDesc(ArrayList<StreamConfigItem> list) {
// TODO: implement
return null;
}
private static ArrayList<StreamConfigItem> sortByNameAsc(ArrayList<StreamConfigItem> list) {
// TODO: implement
return null;
}
private static ArrayList<StreamConfigItem> sortByStatus(ArrayList<StreamConfigItem> list) {
ArrayList<StreamConfigItem> result = new ArrayList<StreamConfigItem>();
for (int i = 0; i<list.size(); i++) {
if (list.get(i).getStatus()) {
+3
View File
@@ -1,7 +1,10 @@
package com.ixab.GUI;
import com.ixab.Logging.Logger;
public class ErrorMessageGate {
public static void setErrorText(String s) {
Logger.print(s);
MainWindow mw = MainWindowGate.getMainWindow();
mw.getErrorLabel().setText(s);
}
+27 -5
View File
@@ -6,7 +6,7 @@ import com.ixab.ConfigHandling.StreamConfigItem;
import com.ixab.ConfigHandling.StreamConfigSorter;
import com.ixab.Logging.Logger;
import com.ixab.StreamHandling.StreamOpener;
import javafx.event.EventDispatcher;
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
import javax.swing.*;
import java.awt.event.*;
@@ -63,9 +63,7 @@ public class MainWindow {
public void actionPerformed(ActionEvent e) {
ConfigFileInstanceHandler.getConfig().removeStream(comboBoxStreams.getSelectedItem());
ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig());
lockStreamInfoGetter = true;
refreshStreamsComboBox();
lockStreamInfoGetter = false;
}
});
comboBoxStreams.addActionListener(new ActionListener() {
@@ -74,6 +72,7 @@ public class MainWindow {
if (!lockStreamInfoGetter) {
updateStreamDetails();
}
ConfigFileInstanceHandler.getConfig().setLastSelectedStream(comboBoxStreams.getSelectedIndex());
}
});
buttonReloadAllStreamData.addActionListener(new ActionListener() {
@@ -115,6 +114,12 @@ public class MainWindow {
}
}
});
comboBoxQuality.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ConfigFileInstanceHandler.getConfig().setLastSelectedQuality(comboBoxQuality.getSelectedIndex());
}
});
}
private void startUpdaterThread() {
if (updateThread != null) {
@@ -189,12 +194,11 @@ public class MainWindow {
as.create();
}
private void refreshComboBoxes() {
lockStreamInfoGetter = true;
refreshQualityComboBox();
refreshStreamsComboBox();
lockStreamInfoGetter = false;
}
protected void refreshStreamsComboBox() {
lockStreamInfoGetter = true;
Object o = comboBoxStreams.getSelectedItem();
comboBoxStreams.removeAllItems();
for (StreamConfigItem stream :
@@ -204,12 +208,30 @@ public class MainWindow {
if (o != null) {
comboBoxStreams.setSelectedItem(o);
} else if (comboBoxStreams.getItemCount()>0) {
if (ConfigFileInstanceHandler.getConfig().getLastSelectedStream() == -1) {
comboBoxStreams.setSelectedIndex(0);
} else {
comboBoxStreams.setSelectedIndex(ConfigFileInstanceHandler.getConfig().getLastSelectedStream());
}
}
if (o == null && comboBoxStreams.getItemCount()>0) {
comboBoxStreams.setSelectedIndex(ConfigFileInstanceHandler.getConfig().getLastSelectedStream());
}
lockStreamInfoGetter = false;
}
private void refreshQualityComboBox() {
Object o = comboBoxQuality.getSelectedItem();
comboBoxQuality.removeAllItems();
comboBoxQuality.addItem("best"); comboBoxQuality.addItem("high"); comboBoxQuality.addItem("medium"); comboBoxQuality.addItem("low"); comboBoxQuality.addItem("mobile");
if (o != null) {
comboBoxQuality.setSelectedItem(o);
}
if (ConfigFileInstanceHandler.getConfig().getLastSelectedQuality() == -1) {
ConfigFileInstanceHandler.getConfig().setLastSelectedQuality(comboBoxQuality.getSelectedIndex());
} else {
comboBoxQuality.setSelectedIndex(ConfigFileInstanceHandler.getConfig().getLastSelectedQuality());
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("jLSLauncher "+ com.ixab.Main.getVersion());
@@ -18,6 +18,7 @@ public class StreamOpener extends Thread {
}
public void run() {
try {
Logger.print("Starting stream livestreamer for "+this.streamName+" at "+this.quality+" quality");
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(this.c.getLSPath()+" twitch.tv/"+this.streamName+" "+this.quality);