diff --git a/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.form b/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.form index 25b3793..3889366 100644 --- a/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.form +++ b/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.form @@ -2,7 +2,7 @@
- + @@ -12,6 +12,12 @@ + + + + + + diff --git a/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.java b/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.java index 775475b..8fd528d 100644 --- a/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.java +++ b/src/de/oszimt/ls/aliendefence/view/menue/LevelChoice.java @@ -1,8 +1,11 @@ package de.oszimt.ls.aliendefence.view.menue; import de.oszimt.ls.aliendefence.controller.AlienDefenceController; +import de.oszimt.ls.aliendefence.controller.GameController; import de.oszimt.ls.aliendefence.controller.LevelController; import de.oszimt.ls.aliendefence.model.Level; +import de.oszimt.ls.aliendefence.model.User; +import de.oszimt.ls.aliendefence.view.game.GameGUI; import javax.swing.*; import javax.swing.table.DefaultTableModel; @@ -17,6 +20,7 @@ public class LevelChoice { private JButton btnUpdateLevel; private JTable tblLevels; private JButton btnDeleteLevel; + private JButton btnPlay; private final LevelController lvlControl; private final LeveldesignWindow leveldesignWindow; @@ -27,7 +31,7 @@ public class LevelChoice { * @param controller * @param leveldesignWindow */ - public LevelChoice(AlienDefenceController controller, LeveldesignWindow leveldesignWindow) { + public LevelChoice(AlienDefenceController controller, LeveldesignWindow leveldesignWindow, User user) { this.lvlControl = controller.getLevelController(); this.leveldesignWindow = leveldesignWindow; @@ -51,6 +55,12 @@ public class LevelChoice { tblLevels.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); this.updateTableData(); + btnPlay.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + btnPlay_Clicked(controller, user); + } + }); } private String[][] getLevelsAsTableModel() { @@ -85,6 +95,21 @@ public class LevelChoice { this.updateTableData(); } + public void btnPlay_Clicked(AlienDefenceController alienDefenceController, User user) { + //Level_id des selektierten Elements auslesen + int level_id = Integer + .parseInt((String) this.tblLevels.getModel().getValueAt(this.tblLevels.getSelectedRow(), 0)); + Thread t = new Thread("GameThread") { + @Override + public void run() { + GameController gameController = alienDefenceController.startGame(alienDefenceController.getLevelController().readLevel(level_id), user); + new GameGUI(gameController).start(); + } + }; + t.start(); + } + + public JPanel getPanel() { return panel; } diff --git a/src/de/oszimt/ls/aliendefence/view/menue/LeveldesignWindow.java b/src/de/oszimt/ls/aliendefence/view/menue/LeveldesignWindow.java index 4112547..bb5a6df 100644 --- a/src/de/oszimt/ls/aliendefence/view/menue/LeveldesignWindow.java +++ b/src/de/oszimt/ls/aliendefence/view/menue/LeveldesignWindow.java @@ -9,6 +9,7 @@ import javax.swing.border.EmptyBorder; import de.oszimt.ls.aliendefence.controller.AlienDefenceController; import de.oszimt.ls.aliendefence.controller.LevelController; import de.oszimt.ls.aliendefence.model.Level; +import de.oszimt.ls.aliendefence.model.User; @SuppressWarnings("serial") public class LeveldesignWindow extends JFrame { @@ -23,7 +24,7 @@ public class LeveldesignWindow extends JFrame { /** * Create the frame. */ - public LeveldesignWindow(AlienDefenceController controller) { + public LeveldesignWindow(AlienDefenceController controller, User user) { this.lvlControl = controller.getLevelController(); setTitle("Leveldesigner"); @@ -35,7 +36,7 @@ public class LeveldesignWindow extends JFrame { this.cards = new CardLayout(); contentPane.setLayout(cards); - levelChoice = new LevelChoice(controller, this); + levelChoice = new LevelChoice(controller, this, user); contentPane.add(levelChoice.getPanel(), "levelChooser"); this.cardLevelEditor = new LevelEditor(this, controller, Level.getDefaultLevel()); diff --git a/src/de/oszimt/ls/aliendefence/view/menue/MainMenu.java b/src/de/oszimt/ls/aliendefence/view/menue/MainMenu.java index 02e6685..634fa90 100644 --- a/src/de/oszimt/ls/aliendefence/view/menue/MainMenu.java +++ b/src/de/oszimt/ls/aliendefence/view/menue/MainMenu.java @@ -62,7 +62,9 @@ public class MainMenu { testButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - new LevelChoice(alienDefenceController, new LeveldesignWindow(alienDefenceController)); + // Erstellt Modell von aktuellen Nutzer + User user = new User(1, "test", "pass"); + new LeveldesignWindow(alienDefenceController, user); } }); @@ -78,7 +80,7 @@ public class MainMenu { levelEditorButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - new LeveldesignWindow(alienDefenceController); + new LeveldesignWindow(alienDefenceController, null); } });