
import javax.swing.*;

/**
 * This class provides a graphical view of the current time
 */
public class ClockView extends JFrame
{
    private JLabel tLabel = new JLabel();
    
    /**
     * Constructor method to make a ClockView object.
     */
    public ClockView()
    {
        super("Clock");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(100, 70);
        tLabel.setHorizontalAlignment(SwingConstants.CENTER);
        getContentPane().add(tLabel);
        refreshTimeDisplay();
    }
    
    /**
     * Helper method to convert an integer to a 0-padded string.
     * @param i The integer to convert
     * @return A string representing the integer, padded on the
     * left by a '0' character if the integer was less than 10.
     */
    protected String getDigitsAsString(int i)
    {
        String str = Integer.toString(i);
        if (i < 10)
            str = "0" + str;
        return str;
    }
    
    /**
     * A method to update the time displayed in the ClockView window.
     */
    public void refreshTimeDisplay()
    {
        Timestamp t = new Timestamp();
        t.fillTimes();
        String display = getDigitsAsString(t.hrs) + ":" +
                 getDigitsAsString(t.mins) + ":" +
                 getDigitsAsString(t.secs) + " " +
                 t.am_pm;
        tLabel.setText(" " + display);
        tLabel.repaint();
    }
}
        
        
