From 830f65213904bd359fd1e7a7d6d4853dc869116c Mon Sep 17 00:00:00 2001 From: Daniel Aberger Date: Fri, 6 Nov 2015 21:42:03 +0100 Subject: [PATCH] im groben und ganzen funktionierts. ich kann keine guis. --- .gitignore | 5 + src/com/ixab/ConfigHandling/Config.java | 5 +- ...eHandler.java => ConfigFileIOHandler.java} | 4 +- .../ConfigFileInstanceHandler.java | 13 ++ src/com/ixab/GUI/ConfigLoadMenu.form | 52 ++++++++ src/com/ixab/GUI/ConfigLoadMenu.java | 52 ++++++++ src/com/ixab/GUI/ConfigMenu.java | 4 - .../ixab/GUI/{ConfigMenu.form => Main.form} | 5 +- src/com/ixab/GUI/Main.java | 15 +++ src/com/ixab/GUI/StreamChooserMenu.form | 115 +++++++++++++++++- src/com/ixab/GUI/StreamChooserMenu.java | 61 ++++++++++ src/com/ixab/Main.java | 35 +++--- 12 files changed, 333 insertions(+), 33 deletions(-) create mode 100644 .gitignore rename src/com/ixab/ConfigHandling/{ConfigFileHandler.java => ConfigFileIOHandler.java} (92%) create mode 100644 src/com/ixab/ConfigHandling/ConfigFileInstanceHandler.java create mode 100644 src/com/ixab/GUI/ConfigLoadMenu.form create mode 100644 src/com/ixab/GUI/ConfigLoadMenu.java delete mode 100644 src/com/ixab/GUI/ConfigMenu.java rename src/com/ixab/GUI/{ConfigMenu.form => Main.form} (53%) create mode 100644 src/com/ixab/GUI/Main.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c072d37 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/.idea +/out +/jLSLauncher.iml +/config.dat +# Created by .ignore support plugin (hsz.mobi) diff --git a/src/com/ixab/ConfigHandling/Config.java b/src/com/ixab/ConfigHandling/Config.java index cf07b3b..d59d619 100644 --- a/src/com/ixab/ConfigHandling/Config.java +++ b/src/com/ixab/ConfigHandling/Config.java @@ -17,12 +17,15 @@ public class Config implements Serializable { } public String getStreamName(int streamIndex) { - return this.streamNames.get(streamIndex-1); + return this.streamNames.get(streamIndex); } public void addStream(String streamName) { this.streamNames.add(streamName); } + public void removeStream(Object streamName) { + this.streamNames.remove(streamName); + } public ArrayList getStreams() { return this.streamNames; } diff --git a/src/com/ixab/ConfigHandling/ConfigFileHandler.java b/src/com/ixab/ConfigHandling/ConfigFileIOHandler.java similarity index 92% rename from src/com/ixab/ConfigHandling/ConfigFileHandler.java rename to src/com/ixab/ConfigHandling/ConfigFileIOHandler.java index 9c33b9e..3a5532a 100644 --- a/src/com/ixab/ConfigHandling/ConfigFileHandler.java +++ b/src/com/ixab/ConfigHandling/ConfigFileIOHandler.java @@ -2,7 +2,7 @@ package com.ixab.ConfigHandling; import java.io.*; -public class ConfigFileHandler { +public class ConfigFileIOHandler { public static Config load(String path) { Config c = null; try @@ -33,7 +33,7 @@ public class ConfigFileHandler { out.writeObject(c); out.close(); fileOut.close(); - System.out.printf("Config data is saved in config.dat"); + System.out.println("Config data is saved in config.dat"); }catch(IOException i) { i.printStackTrace(); diff --git a/src/com/ixab/ConfigHandling/ConfigFileInstanceHandler.java b/src/com/ixab/ConfigHandling/ConfigFileInstanceHandler.java new file mode 100644 index 0000000..6f047be --- /dev/null +++ b/src/com/ixab/ConfigHandling/ConfigFileInstanceHandler.java @@ -0,0 +1,13 @@ +package com.ixab.ConfigHandling; + +public class ConfigFileInstanceHandler { + public static Config getConfig() { + return config; + } + + public static void setConfig(Config c) { + config = c; + } + + private static Config config; +} diff --git a/src/com/ixab/GUI/ConfigLoadMenu.form b/src/com/ixab/GUI/ConfigLoadMenu.form new file mode 100644 index 0000000..dfab454 --- /dev/null +++ b/src/com/ixab/GUI/ConfigLoadMenu.form @@ -0,0 +1,52 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/com/ixab/GUI/ConfigLoadMenu.java b/src/com/ixab/GUI/ConfigLoadMenu.java new file mode 100644 index 0000000..ee6b34f --- /dev/null +++ b/src/com/ixab/GUI/ConfigLoadMenu.java @@ -0,0 +1,52 @@ +package com.ixab.GUI; + +import com.ixab.ConfigHandling.Config; +import com.ixab.ConfigHandling.ConfigFileIOHandler; +import com.ixab.ConfigHandling.ConfigFileInstanceHandler; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class ConfigLoadMenu { + private static JFrame frame; + private JPanel panel; + private JTextField textField1; + private JButton auswählenButton; + private JButton ladeKonfigurationButton; + + public ConfigLoadMenu() { + auswählenButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + final JFileChooser jf = new JFileChooser(); + jf.showOpenDialog(frame); + textField1.setText(jf.getSelectedFile().getAbsolutePath()); + ladeKonfigurationButton.setText("Lade Konfiguration"); + ladeKonfigurationButton.setEnabled(true); + } + }); + ladeKonfigurationButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Config c = ConfigFileIOHandler.load(textField1.getText()); + if (c == null) { + ladeKonfigurationButton.setText("ACHTUNG: Fehler beim Laden, neue Datei wählen!"); + ladeKonfigurationButton.setEnabled(false); + } else { + ConfigFileInstanceHandler.setConfig(c); + StreamChooserMenu.main(null); + frame.dispose(); + } + } + }); + } + + public static void main(String[] args) { + frame = new JFrame("ConfigLoadMenu"); + frame.setContentPane(new ConfigLoadMenu().panel); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.pack(); + frame.setVisible(true); + } +} diff --git a/src/com/ixab/GUI/ConfigMenu.java b/src/com/ixab/GUI/ConfigMenu.java deleted file mode 100644 index ba8820e..0000000 --- a/src/com/ixab/GUI/ConfigMenu.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ixab.GUI; - -public class ConfigMenu { -} diff --git a/src/com/ixab/GUI/ConfigMenu.form b/src/com/ixab/GUI/Main.form similarity index 53% rename from src/com/ixab/GUI/ConfigMenu.form rename to src/com/ixab/GUI/Main.form index 2d5db54..528c4d2 100644 --- a/src/com/ixab/GUI/ConfigMenu.form +++ b/src/com/ixab/GUI/Main.form @@ -1,10 +1,9 @@ -
- + + - diff --git a/src/com/ixab/GUI/Main.java b/src/com/ixab/GUI/Main.java new file mode 100644 index 0000000..4cde6e1 --- /dev/null +++ b/src/com/ixab/GUI/Main.java @@ -0,0 +1,15 @@ +package com.ixab.GUI; + +import javax.swing.*; + +public class Main { + + private JPanel panel; + public static void main(String[] args) { + JFrame frame = new JFrame("Main"); + frame.setContentPane(new Main().panel); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.pack(); + frame.setVisible(true); + } +} diff --git a/src/com/ixab/GUI/StreamChooserMenu.form b/src/com/ixab/GUI/StreamChooserMenu.form index a90b69e..e0b0968 100644 --- a/src/com/ixab/GUI/StreamChooserMenu.form +++ b/src/com/ixab/GUI/StreamChooserMenu.form @@ -1,13 +1,120 @@ - + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/com/ixab/GUI/StreamChooserMenu.java b/src/com/ixab/GUI/StreamChooserMenu.java index c0dc2b6..4d92b70 100644 --- a/src/com/ixab/GUI/StreamChooserMenu.java +++ b/src/com/ixab/GUI/StreamChooserMenu.java @@ -1,4 +1,65 @@ package com.ixab.GUI; +import com.ixab.ConfigHandling.Config; +import com.ixab.ConfigHandling.ConfigFileIOHandler; +import com.ixab.ConfigHandling.ConfigFileInstanceHandler; +import com.ixab.StreamHandling.StreamOpener; +import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + public class StreamChooserMenu { + private JPanel panel; + private JComboBox comboBox1; + private JComboBox comboBox2; + private JTextField textField1; + private JButton hinzufügenButton; + private JButton streamAbspielenButton; + private JButton entfernenButton; + + public StreamChooserMenu() { + this.initComboBoxes(); + streamAbspielenButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + StreamOpener so = new StreamOpener(ConfigFileInstanceHandler.getConfig(), ConfigFileInstanceHandler.getConfig().getStreams().indexOf(comboBox1.getSelectedItem()), comboBox2.getSelectedItem().toString()); + so.start(); + } + }); + hinzufügenButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + ConfigFileInstanceHandler.getConfig().addStream(textField1.getText()); + ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig()); + initComboBoxes(); + textField1.setText(""); + } + }); + entfernenButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + ConfigFileInstanceHandler.getConfig().removeStream(comboBox1.getSelectedItem()); + ConfigFileIOHandler.save(ConfigFileInstanceHandler.getConfig()); + initComboBoxes(); + } + }); + } + public void initComboBoxes() { + comboBox1.removeAllItems(); + comboBox2.removeAllItems(); + for (String streamName : + ConfigFileInstanceHandler.getConfig().getStreams()) { + comboBox1.addItem(streamName); + } + comboBox2.addItem("best"); comboBox2.addItem("high"); comboBox2.addItem("medium"); comboBox2.addItem("low"); comboBox2.addItem("mobile"); + } + public static void main(String[] args) { + JFrame frame = new JFrame("StreamChooserMenu"); + frame.setContentPane(new StreamChooserMenu().panel); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.pack(); + frame.setVisible(true); + } } diff --git a/src/com/ixab/Main.java b/src/com/ixab/Main.java index de04810..306c0f7 100644 --- a/src/com/ixab/Main.java +++ b/src/com/ixab/Main.java @@ -1,28 +1,25 @@ package com.ixab; import com.ixab.ConfigHandling.Config; -import com.ixab.ConfigHandling.ConfigFileHandler; -import com.ixab.StreamHandling.StreamOpener; +import com.ixab.ConfigHandling.ConfigFileIOHandler; +import com.ixab.ConfigHandling.ConfigFileInstanceHandler; +import com.ixab.GUI.StreamChooserMenu; public class Main { - private static boolean running = true; - public static void exitProgram() { - running = false; - } + private static Config c = null; public static void main(String[] args) { - while (running) { - // TODO: config dialog - // TODO: stream choosing + //ConfigLoadMenu.main(null); + c = ConfigFileIOHandler.load(); + if (c == null) { + initNewConfig(); + c = ConfigFileIOHandler.load(); } - // begin test - //Config c = new Config(); - Config c = ConfigFileHandler.load(); - //c.addStream("cohhcarnage"); - //c.setLSPath("e:\\downloads\\livestreamer-v1.11.1\\livestreamer.exe"); - //ConfigFileHandler.save(c); - - StreamOpener so = new StreamOpener(c, 1, "best"); - so.start(); - // end test + ConfigFileInstanceHandler.setConfig(c); + StreamChooserMenu.main(null); + } + public static void initNewConfig() { + c = new Config(); + c.setLSPath("e:\\downloads\\livestreamer-v1.11.1\\livestreamer.exe"); + ConfigFileIOHandler.save(c); } }