package com.nextwavesoft;


import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import com.nextwavesoft.enumeration.CircularFrameType;
import com.nextwavesoft.enumeration.LedState;
import com.nextwavesoft.enumeration.ToggleSwitchState;
import com.nextwavesoft.enumeration.ToggleSwitchType;
import com.nextwavesoft.gauge.*;

public class SwitchLedTest  {
	
	
	public static void main(String[] argv)
	{
		SwitchLedTest m = new SwitchLedTest();
		m.createAndShowGUI();
	}

	/**
	 * Creates the and show gui.
	 */
	Led led;
	private  void createAndShowGUI() {
		//Create and set up the window.
		JFrame frame = new JFrame("IconDisplayer");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		led = new Led();
		led.setFrameType(CircularFrameType.ClippedRectangle);
		led.setBackground(Color.BLACK);
		led.setForeground(Color.WHITE);
		led.setLedState(LedState.On);

		ToggleSwitch circularToggleSwitch = new ToggleSwitch();
		circularToggleSwitch.setSwitchType(ToggleSwitchType.Circular);
		circularToggleSwitch.setBaseBackground(Color.RED);
		circularToggleSwitch.setFocusColor(Color.GREEN);
		circularToggleSwitch.setShaftColor(Color.GRAY);
		circularToggleSwitch.setTipColor(Color.ORANGE);
		circularToggleSwitch.setBallColor(Color.BLACK);
		circularToggleSwitch.setThreeState(true);		
		circularToggleSwitch.addChangeListener(new ChangeListener(){
			@Override
			public void stateChanged(ChangeEvent e){
				 ToggleSwitch s = (ToggleSwitch)e.getSource();
				 if (s.getState() == ToggleSwitchState.SELECTED)
					 led.setLedState(LedState.On);
				 else if (s.getState() == ToggleSwitchState.DONT_CARE)
					 led.setLedState(LedState.Blinking);
				 else
					 led.setLedState(LedState.Off);
			}
		});

		GridLayout gl = new GridLayout(1,2);
		frame.setLayout(gl);
		frame.getContentPane().add(led);
		frame.getContentPane().add(circularToggleSwitch);
		
		frame.setSize(new Dimension(600, 150));
		frame.setVisible(true);
	}
}



