import java.awt.*;
import java.awt.event.*;
import java.util.TimeZone;
public class Uhr extends AnotherCanvas {//implements Runnable{
    private Zeiger minZ;
    private Zeiger hourZ;
    private Zeiger secZ;
    private Dimension dim;
    private Ziffernblatt ziffernblatt;
    private Uhrwerk uhrwerk;
    int sec = 1;
    int min = 2;
    int hour = 30;
	private Color f;
	private Color b;
	private Color z;
	private Point middle;


    public Uhr(Dimension _dim,TimeZone timeZone){
		super();
		f = new Color(0,0,66);
		b = new Color(0,66,0);
		z = Color.red;
		setBackground(f.darker());
		dim = _dim;
		Uhrwerk uhrwerk = new Uhrwerk(this,timeZone);
		init();

    }

	public Uhr(Dimension _dim, Color _f,Color _b,Color _back,Color z,TimeZone timeZone){
		super();
		f=_f;
		b=_b;
		setBackground(_back);		
		dim = _dim;
		Uhrwerk uhrwerk = new Uhrwerk(this,timeZone);
		init();
	}

    private void init(){
		if(dim.width > dim.height)
			dim.width = dim.height;
		else
			dim.height = dim.width;	
	
		middle = getLocation();
		middle.x+=dim.height/2;
		middle.y+=dim.width/2;

		setSize(dim);
		minZ = new Zeiger(middle,(int)(dim.width/2*0.85),z,b,dim.width/4/15);
		hourZ = new Zeiger(middle,(int)(0.85*dim.width/4),z,b,dim.width/4/15);
		secZ = new Zeiger(middle,(int)(0.85*dim.width/2),z,b,dim.width/4/30);
	
		ziffernblatt = new Ziffernblatt(middle,dim.width/2,f,b);
		
    }
	    
    public void setNewSize(Dimension _dim){
		dim = _dim;
		init();
    }

    public void paint(Graphics g){
    	
			((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
			ziffernblatt.draw(g);
			hourZ.draw(hour,g);
			minZ.draw(min,g);
			secZ.draw(sec,g);
		
	}

	
    /**
     *Damit der Layoutmanager des umgebenden Containers die
     *Uhr nicht auf Größe 0x0 schrumpft
     */
    public Dimension getMaximumSize(){
		return dim;
    }
    public Dimension getMinimumSize(){
		return dim;
    } 
   	public Dimension getPreferredSizeSize(){
		return dim;
    } 
}
