package settlers_javafx;

import java.awt.event.ActionEvent;
import java.text.SimpleDateFormat;
import java.util.Date;
import javafx.geometry.Pos;
import javafx.scene.text.Font;

public final class Clock extends javafx.scene.control.Label implements java.awt.event.ActionListener {

    private final SimpleDateFormat SIMPLE_DATE_FORMAT;

    public Clock(String type, int x, int y, int width, int height) {
        setTextFill(javafx.scene.paint.Color.BLUE);
        setLayoutX(x);
        setLayoutY(y);
        setPrefSize(width, height);
        switch (type) {
            case "date":
                SIMPLE_DATE_FORMAT = new SimpleDateFormat("  MMMM dd yyyy");
                setFont(new Font("sans-serif", 12));
                setAlignment(Pos.CENTER_LEFT);
                break;
            case "time":
                SIMPLE_DATE_FORMAT = new SimpleDateFormat("hh:mm:ss a");
                setFont(new Font("sans-serif", 40));
                setAlignment(Pos.CENTER);
                break;
            case "day":
                SIMPLE_DATE_FORMAT = new SimpleDateFormat("EEEE  ");
                setFont(new Font("sans-serif", 16));
                setAlignment(Pos.CENTER_RIGHT);
                break;
            default:
                SIMPLE_DATE_FORMAT = new SimpleDateFormat();
        }
        javax.swing.Timer t = new javax.swing.Timer(1000, this);
        t.start();
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        Date d = new Date();
        setText(SIMPLE_DATE_FORMAT.format(d));
    }
}