From a6faa62d3d0fce391871e7fc1f30e44368e34b00 Mon Sep 17 00:00:00 2001 From: shebang Date: Wed, 14 Jan 2015 06:58:54 +0100 Subject: [PATCH] major changes in HighscoreMenu, implemented graphics and beginn for showing scores --- .../src/de/heatup/ui/menu/HighscorePanel.java | 122 +++++++++++++++++- 1 file changed, 121 insertions(+), 1 deletion(-) diff --git a/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java b/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java index caa29c6..050fa5c 100644 --- a/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java +++ b/HeatUp/src/de/heatup/ui/menu/HighscorePanel.java @@ -1,5 +1,125 @@ package de.heatup.ui.menu; -public class HighscorePanel { +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GridLayout; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import de.heatup.highscore.ScoreEntry; +import de.heatup.logging.Logger; +import de.heatup.mapengine.MapEngine; +import de.heatup.ui.FontLoader; + +public class HighscorePanel { + + // dynamic panels + private static JPanel highscorePanel = new JPanel(); + private static JPanel headingPanel; + private static JPanel contentPanel; + + // default text panels and labels + private static JLabel headingLabel, dividerLabel; + private static GridLayout grid = new GridLayout(2, 1); + + + // Font Loader and font Settings + private static FontLoader fl = new FontLoader(); + private static Font ttfbase, emulogicHeading, emulogicDivider, emulogicSmall; + + // MapEngine used to get and set the Highscore + private static MapEngine me; + + public HighscorePanel() { + + initHighscorePanel(); + getHighscores(); + } + + private static void getHighscores() { + // default map + me = new MapEngine(1); + + // set some default values + me.getHighscoreHandler().setHighscore(me.getMapHash(), "Daniel", 3134); + me.getHighscoreHandler().setHighscore(me.getMapHash(), "Tim", 2010); + me.getHighscoreHandler().saveHighscores(); + + for (ScoreEntry score : me.getHighscoreHandler().getHighscores(me.getMapHash())) { + Logger.write(score.getName()+" "+score.getScore()); + } + } + + private static void initHighscorePanel() { + highscorePanel.setSize(new Dimension(800, 600)); + highscorePanel.setBackground(Color.BLACK); + highscorePanel.setFocusable(false); + + // build full highscorePanel + initHeadingPanel(); + initContentPanel(); + highscorePanel.add(headingPanel); + highscorePanel.add(contentPanel); + highscorePanel.setVisible(true); + } + + private static void initHeadingPanel() { + headingPanel = new JPanel(); + + headingPanel.setSize(new Dimension(800, 50)); + headingPanel.setBackground(Color.BLACK); + headingPanel.setFocusable(false); + headingPanel.setLayout(grid); + headingPanel.setVisible(true); + + ttfbase = FontLoader.getFont(); + emulogicHeading = ttfbase.deriveFont(Font.PLAIN, 20); + emulogicDivider = ttfbase.deriveFont(Font.PLAIN, 10); + + headingLabel = new JLabel(); + headingLabel.setText("HeatUP! - Highscores"); + headingLabel.setForeground(Color.YELLOW); + headingLabel.setFont(emulogicHeading); + + dividerLabel = new JLabel(); + dividerLabel.setText("----------------------------------------"); + dividerLabel.setForeground(Color.YELLOW); + dividerLabel.setFont(emulogicDivider); + + headingPanel.add(headingLabel); + headingPanel.add(dividerLabel); + } + + private static void initContentPanel() { + contentPanel = new JPanel(); + + contentPanel.setSize(new Dimension(800, 550)); + contentPanel.setBackground(Color.BLACK); + contentPanel.setFocusable(false); + contentPanel.setVisible(true); + + // GridLayout for Scores + } + + + public static JPanel getHighscorePanel() { + return highscorePanel; + } + + + public static void setHighscorePanel(JPanel highscorePanel) { + HighscorePanel.highscorePanel = highscorePanel; + } + + + public static JPanel getContentPanel() { + return contentPanel; + } + + + public static void setContentPanel(JPanel contentPanel) { + HighscorePanel.contentPanel = contentPanel; + } }