diff --git a/HeatUp/src/de/heatup/ui/menu/SaveScorePanel.java b/HeatUp/src/de/heatup/ui/menu/SaveScorePanel.java index ac6f881..0dcd576 100644 --- a/HeatUp/src/de/heatup/ui/menu/SaveScorePanel.java +++ b/HeatUp/src/de/heatup/ui/menu/SaveScorePanel.java @@ -1,23 +1,30 @@ package de.heatup.ui.menu; +import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.TextField; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; import javax.swing.JLabel; import javax.swing.JPanel; +import de.heatup.highscore.ScoreEntry; +import de.heatup.logging.Logger; import de.heatup.ui.FontLoader; +import de.heatup.ui.Main; +import de.heatup.ui.PanelBuilder; public class SaveScorePanel { private static JPanel saveScorePanel = new JPanel(); // - private static JPanel headingPanel, dividerPanel, formPanel; - private static JLabel headingLabel, dividerLabel, scoreLabel; + private static JPanel headingPanel, dividerPanel, formPanel, scorePanel,scoreTextPanel, savePanel; + private static JLabel headingLabel, dividerLabel, scoreLabel, saveLabel; private static TextField nameField; // Font loader and font Settings @@ -40,7 +47,12 @@ public class SaveScorePanel { initHeadingPanel(); saveScorePanel.add(headingPanel); saveScorePanel.add(dividerPanel); - + + initFormPanel(); + saveScorePanel.add(formPanel); + + initSavePanel(); + saveScorePanel.add(savePanel); } private static void initHeadingPanel() { @@ -76,46 +88,93 @@ public class SaveScorePanel { dividerPanel.add(dividerLabel); } - private static void initFormPanel() { + formPanel = new JPanel(); formPanel.setSize(new Dimension(800, 400)); + formPanel.setLayout(new GridLayout(2, 1)); formPanel.setBackground(Color.BLACK); formPanel.setFocusable(true); formPanel.setVisible(true); + scoreTextPanel = new JPanel(); + scoreTextPanel.setSize(new Dimension(800, 200)); + scoreTextPanel.setBackground(Color.BLACK); + scoreTextPanel.setFocusable(true); + scoreTextPanel.setVisible(true); + // nameField = new TextField("Name", 25); nameField.setEditable(true); nameField.setFont(emulogicSmall); + scoreTextPanel.add(nameField); + + // + scorePanel = new JPanel(); + scorePanel.setVisible(true); + scorePanel.setFocusable(false); + scorePanel.setSize(new Dimension(800, 200)); + scorePanel.setBackground(Color.BLACK); + // scoreLabel = new JLabel(); scoreLabel.setFont(emulogicSmall); scoreLabel.setForeground(Color.YELLOW); scoreLabel.setBackground(Color.BLACK); scoreLabel.setFocusable(false); + scoreLabel.setText("Deine score"); + scoreLabel.setVisible(true); + scorePanel.add(scoreLabel); - JPanel nameFormPanel = new JPanel(); - nameFormPanel.setSize(new Dimension(800, 300)); - nameFormPanel.setLayout(new GridLayout(2, 1)); - nameFormPanel.setBackground(Color.BLACK); - nameFormPanel.setFocusable(true); - nameFormPanel.setVisible(true); + formPanel.add(scorePanel); + formPanel.add(scoreTextPanel); + } + + public static void initSavePanel() { - nameFormPanel.add(nameField); + savePanel = new JPanel(); + savePanel.setSize(new Dimension(800, 200)); + savePanel.setFocusable(false); + savePanel.setVisible(true); + savePanel.setBackground(Color.BLACK); + + saveLabel = new JLabel(); + saveLabel.setBackground(Color.BLACK); + saveLabel.setForeground(Color.YELLOW); + saveLabel.setFont(emulogicHeading); + saveLabel.setText("Score speichern"); + saveLabel.setVisible(true); + + saveLabel.addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + + // safe scores to file + safeScoreToFile(); + + saveScorePanel.setVisible(false); + MenuPanel.getMenuPanel().setVisible(true); + + PanelBuilder.getOuterPanel().add(MenuPanel.getMenuPanel(), BorderLayout.CENTER); + + Logger.write("Score saved"); + } + }); + + savePanel.add(saveLabel); + } + + private static void safeScoreToFile() { + PanelBuilder.getMapEngine().getHighscoreHandler().setHighscore( + PanelBuilder.getMapEngine().getMapHash(), nameField.getText(), score); + PanelBuilder.getMapEngine().getHighscoreHandler().saveHighscores(); - formPanel.add(nameFormPanel); } public static void setScoreLabelText(int score) { SaveScorePanel.score = score; scoreLabel.setText("Score : " + SaveScorePanel.score); - - initFormPanel(); - formPanel.add(scoreLabel); - saveScorePanel.add(formPanel); } public static void setScore(int score) {