diff options
author | Jannis (jix) Harder <jix@method-missing.org> | 2009-08-21 19:00:11 +0200 |
---|---|---|
committer | Jannis (jix) Harder <jix@method-missing.org> | 2009-08-21 19:00:11 +0200 |
commit | 7bef61ae892e6de48333c22f0e522c05d9c520d6 (patch) | |
tree | 1559afda92517fe247aef2bb9efc11fa3c4f3b27 | |
parent | ce547052ee1949bd31af8b940348e91861d7184e (diff) | |
parent | 8fbe5a7fc851885bced2140df92e0dcb43a5d681 (diff) | |
download | jeopardy-master.tar jeopardy-master.zip |
-rw-r--r-- | src/jeopardy/AQPair.java | 9 | ||||
-rw-r--r-- | src/jeopardy/Controller.java | 25 | ||||
-rw-r--r-- | src/jeopardy/Game.java | 16 | ||||
-rw-r--r-- | src/jeopardy/GameDescription.java | 29 | ||||
-rw-r--r-- | src/jeopardy/Jeopardy.java | 16 | ||||
-rw-r--r-- | src/jeopardy/View.java | 244 |
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) + { + } + } + } |