summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/jeopardy/AQPair.java9
-rw-r--r--src/jeopardy/Controller.java25
-rw-r--r--src/jeopardy/Game.java16
-rw-r--r--src/jeopardy/GameDescription.java29
-rw-r--r--src/jeopardy/Jeopardy.java16
-rw-r--r--src/jeopardy/View.java244
6 files changed, 335 insertions, 4 deletions
diff --git a/src/jeopardy/AQPair.java b/src/jeopardy/AQPair.java
new file mode 100644
index 0000000..75ac226
--- /dev/null
+++ b/src/jeopardy/AQPair.java
@@ -0,0 +1,9 @@
+package jeopardy;
+
+public class AQPair {
+
+
+ AQPair() {
+
+ }
+}
diff --git a/src/jeopardy/Controller.java b/src/jeopardy/Controller.java
index 783c458..1cade9d 100644
--- a/src/jeopardy/Controller.java
+++ b/src/jeopardy/Controller.java
@@ -1,5 +1,28 @@
package jeopardy;
-public class Controller {
+import java.util.ArrayList;
+public class Controller {
+
+ private Model model;
+
+ public Controller(Model m) {
+ model = m;
+ }
+
+ public void beginGame(GameDescription description) {
+
+ }
+
+ public boolean isValidUser(String user) {
+ return model.userExists(user);
+ }
+
+ public void createUser(String user) {
+ model.createUser(user);
+ }
+
+ public ArrayList<String> getCategories(ArrayList<String> players) {
+ return model.validCategoriesForUsers(players);
+ }
}
diff --git a/src/jeopardy/Game.java b/src/jeopardy/Game.java
new file mode 100644
index 0000000..f9f2872
--- /dev/null
+++ b/src/jeopardy/Game.java
@@ -0,0 +1,16 @@
+package jeopardy;
+
+import java.util.ArrayList;
+
+public class Game {
+
+ GameDescription description;
+ ArrayList<ArrayList<AQPair>> content;
+
+ Game(){}
+
+ Game(GameDescription d, ArrayList<ArrayList<AQPair>> c) {
+ description = d;
+ content = c;
+ }
+}
diff --git a/src/jeopardy/GameDescription.java b/src/jeopardy/GameDescription.java
new file mode 100644
index 0000000..6c22fa7
--- /dev/null
+++ b/src/jeopardy/GameDescription.java
@@ -0,0 +1,29 @@
+package jeopardy;
+
+import java.util.ArrayList;
+
+import javax.swing.JTextField;
+
+public class GameDescription {
+
+ private ArrayList<String> categories;
+ private ArrayList<String> users;
+
+ public void addUser(String user) {
+ users.add(user);
+ }
+
+ public void addCategory(String category) {
+ categories.add(category);
+ }
+
+ GameDescription() {
+ categories = new ArrayList<String>();
+ users = new ArrayList<String>();
+ }
+
+ GameDescription(ArrayList<String> c, ArrayList<String> u) {
+ categories = c;
+ users = u;
+ }
+}
diff --git a/src/jeopardy/Jeopardy.java b/src/jeopardy/Jeopardy.java
index 341a5c5..dfd649a 100644
--- a/src/jeopardy/Jeopardy.java
+++ b/src/jeopardy/Jeopardy.java
@@ -6,6 +6,11 @@ import java.util.Arrays;
import jeopardy.Controller;
import jeopardy.DBModel;
import jeopardy.Model;
+import javax.swing.SwingUtilities;
+import javax.swing.UIDefaults;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.plaf.FontUIResource;
public class Jeopardy {
@@ -13,8 +18,13 @@ public class Jeopardy {
* @param args
*/
public static void main(String[] args) {
- Model mod = new DBModel("jdbc:mysql://localhost:3306/jeopardy?user=jeopardy&password=j3opardy");
- System.out.println(mod.validCategoriesForUsers(new ArrayList<String>(Arrays.asList("Jannis","du!"))));
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ Model mod = new DBModel("jdbc:mysql://phoenix.local:3306/jeopardy?user=jeopardy&password=j3opardy");
+ Controller c = new Controller(mod);
+ View view = new View(c);
+ view.createGameDialog(new GameDescription());
+ }
+ });
}
-
}
diff --git a/src/jeopardy/View.java b/src/jeopardy/View.java
index bed1eba..ba652e7 100644
--- a/src/jeopardy/View.java
+++ b/src/jeopardy/View.java
@@ -1,5 +1,249 @@
package jeopardy;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+import java.util.ArrayList;
+
public class View {
+ private Controller controller;
+
+ private JFrame show;
+ private JFrame host;
+
+ private JPanel labelPanel;
+ private JPanel questionPanel;
+
+
+ public void createGameDialog(final GameDescription description) {
+
+ final JPanel pmPanel = new JPanel();
+ final BoxLayout pmLayout = new BoxLayout(pmPanel, BoxLayout.LINE_AXIS);
+ pmPanel.setLayout(pmLayout);
+
+ final JPanel usersPanel = new JPanel();
+ final BoxLayout usersLayout = new BoxLayout(usersPanel, BoxLayout.PAGE_AXIS);
+ usersPanel.setLayout(usersLayout);
+
+ final JPanel nameAreaPanel = new JPanel();
+ final BoxLayout nameAreaLayout = new BoxLayout(nameAreaPanel, BoxLayout.PAGE_AXIS);
+ nameAreaPanel.setLayout(nameAreaLayout);
+
+ final ArrayList<JTextField> nameArea = new ArrayList<JTextField>();
+ JTextField firstName = new JTextField();
+ nameArea.add(new JTextField());
+ firstName.setMaximumSize(new Dimension(Short.MAX_VALUE, 1));
+ nameAreaPanel.add(Box.createGlue());
+ nameAreaPanel.add(firstName);
+
+ nameAreaPanel.setMaximumSize(new Dimension(150, 1));
+
+ JLabel descriptionLabel = new JLabel("Bitte Spielernamen angeben!");
+
+ JButton plus = new JButton("+");
+ plus.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ nameArea.add(new JTextField());
+ nameArea.get(nameArea.size()-1).setMaximumSize(new Dimension(Short.MAX_VALUE, 1));
+ nameAreaPanel.add(nameArea.get(nameArea.size()-1));
+ host.validate();
+ }
+ });
+
+ JButton minus = new JButton("-");
+ minus.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ nameAreaPanel.remove(nameArea.get(nameArea.size()-1));
+ nameArea.remove(nameArea.size()-1);
+ host.validate();
+ }
+ });
+
+ JButton finish = new JButton("Ok");
+
+ pmPanel.add(plus);
+ pmPanel.add(minus);
+
+ descriptionLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
+ nameAreaPanel.setAlignmentX(Component.CENTER_ALIGNMENT);
+ pmPanel.setAlignmentX(Component.CENTER_ALIGNMENT);
+ finish.setAlignmentX(Component.CENTER_ALIGNMENT);
+
+ usersPanel.add(descriptionLabel);
+ usersPanel.add(nameAreaPanel);
+ usersPanel.add(Box.createGlue());
+ usersPanel.add(pmPanel);
+ usersPanel.add(finish);
+
+ host.add(usersPanel);
+ host.validate();
+
+
+ //----------------------
+
+ final JPanel pmPanel2 = new JPanel();
+ final BoxLayout pmLayout2 = new BoxLayout(pmPanel2, BoxLayout.LINE_AXIS);
+ pmPanel2.setLayout(pmLayout2);
+
+ final JPanel categoriesPanel = new JPanel();
+ final BoxLayout categoriesLayout = new BoxLayout(categoriesPanel, BoxLayout.PAGE_AXIS);
+ categoriesPanel.setLayout(categoriesLayout);
+
+ categoriesPanel.setSize(new Dimension(5, Short.MAX_VALUE));
+
+ final JPanel categoriesAreaPanel = new JPanel();
+ final BoxLayout categoriesAreaLayout = new BoxLayout(categoriesAreaPanel, BoxLayout.PAGE_AXIS);
+ categoriesAreaPanel.setLayout(categoriesAreaLayout);
+
+ categoriesAreaPanel.setMaximumSize(new Dimension(150, 1));
+
+ final ArrayList<Choice> categoriesArea = new ArrayList<Choice>();
+ Choice firstCategory = new Choice();
+ categoriesArea.add(firstCategory);
+
+ firstCategory.setMaximumSize(new Dimension(Short.MAX_VALUE, 1));
+ categoriesAreaPanel.add(Box.createGlue());
+
+ categoriesAreaPanel.add(firstCategory);
+
+ JLabel descriptionLabel2 = new JLabel("Bitte Kategorien auswählen!");
+
+ JButton plus2 = new JButton("+");
+
+ plus2.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ categoriesArea.add(new Choice());
+ categoriesArea.get(categoriesArea.size()-1).setMaximumSize(new Dimension(Short.MAX_VALUE, 1));
+ categoriesAreaPanel.add(categoriesArea.get(categoriesArea.size()-1));
+ host.validate();
+ }
+ });
+
+ JButton minus2 = new JButton("-");
+
+ minus2.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ categoriesAreaPanel.remove(categoriesArea.get(nameArea.size()-1));
+ categoriesArea.remove(nameArea.size()-1);
+ host.validate();
+ }
+ });
+
+ JButton finish2 = new JButton("Ok");
+
+ descriptionLabel2.setAlignmentX(Component.CENTER_ALIGNMENT);
+ categoriesAreaPanel.setAlignmentX(Component.CENTER_ALIGNMENT);
+ pmPanel2.setAlignmentX(Component.CENTER_ALIGNMENT);
+ finish2.setAlignmentX(Component.CENTER_ALIGNMENT);
+
+ pmPanel2.add(plus2);
+ pmPanel2.add(minus2);
+
+ categoriesPanel.add(descriptionLabel2);
+ categoriesPanel.add(categoriesAreaPanel);
+ categoriesPanel.add(Box.createGlue());
+ categoriesPanel.add(pmPanel2);
+ categoriesPanel.add(finish2);
+
+ finish.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ for(JTextField bla : nameArea) {
+ description.addUser(bla.getText());
+ }
+ host.remove(usersPanel);
+ host.add(categoriesPanel);
+ host.validate();
+ }
+ });
+
+ finish2.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ for(Choice bla : categoriesArea) {
+ description.addCategory(bla.getSelectedItem());
+ }
+ host.remove(categoriesPanel);
+ host.validate();
+ host.repaint();
+ }
+ });
+ }
+
+
+ //----------------------
+
+
+ public void showQuestion(String q) {
+ show.removeAll();
+
+ questionPanel = new JPanel();
+ JLabel question = new JLabel(q);
+
+ show.add(question);
+ show.validate();
+
+ }
+
+ public void showLabelPanel() {
+
+ }
+
+ public View(Controller c) {
+ controller = c;
+ setupLookAndFeel();
+
+ show = new JFrame("Show");
+ show.setSize(800, 600);
+ show.setVisible(true);
+
+ host = new JFrame("Host");
+ host.setSize(800, 600);
+ host.setVisible(true);
+
+ labelPanel = new JPanel();
+ }
+
+ private void setupLookAndFeel() {
+ try {
+ UIDefaults.ProxyLazyValue font = new UIDefaults.ProxyLazyValue("javax.swing.plaf.FontUIResource", null, new Object[] {"Dialog", 0, 20});
+
+ UIManager.put("Button.font", font);
+ UIManager.put("ToggleButton.font", font);
+ UIManager.put("RadioButton.font", font);
+ UIManager.put("CheckBox.font", font);
+ UIManager.put("ColorChooser.font", font);
+ UIManager.put("ComboBox.font", font);
+ UIManager.put("Label.font", font);
+ UIManager.put("List.font", font);
+ UIManager.put("MenuBar.font", font);
+ UIManager.put("MenuItem.font", font);
+ UIManager.put("RadioButtonMenuItem.font", font);
+ UIManager.put("CheckBoxMenuItem.font", font);
+ UIManager.put("Menu.font", font);
+ UIManager.put("PopupMenu.font", font);
+ UIManager.put("OptionPane.font", font);
+ UIManager.put("Panel.font", font);
+ UIManager.put("ProgressBar.font", font);
+ UIManager.put("ScrollPane.font", font);
+ UIManager.put("Viewport.font", font);
+ UIManager.put("TabbedPane.font", font);
+ UIManager.put("Table.font", font);
+ UIManager.put("TableHeader.font", font);
+ UIManager.put("TextField.font", font);
+ UIManager.put("PasswordField.font", font);
+ UIManager.put("TextArea.font", font);
+ UIManager.put("TextPane.font", font);
+ UIManager.put("EditorPane.font", font);
+ UIManager.put("TitledBorder.font", font);
+ UIManager.put("ToolBar.font", font);
+ UIManager.put("ToolTip.font", font);
+ UIManager.put("Tree.font", font);
+ UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
+ }
+ catch(Exception e)
+ {
+ }
+ }
+
}