/**
 *	Generated by DragonFly
 *
 */
package gpsalarmclock.servicetracker;

import org.osgi.framework.BundleContext;
import com.buglabs.application.AbstractServiceTracker;
import com.buglabs.bug.module.gps.pub.*;
import com.buglabs.bug.module.lcd.pub.*;
import gpsalarmclock.app.*;
import gpsutilities.pub.IGPSUtilProvider;

 /**
 *	Service tracker for the BugApp Bundle;
 *
 */
public class GPSAlarmClockServiceTracker extends AbstractServiceTracker {	
	
	private IGPSUtilProvider gpsUtil;

	private IModuleDisplay display;
	
	private IPositionProvider position;
	
	public GPSAlarmClockServiceTracker(BundleContext context) {
		super(context);
	}
	
	/**
	 * Determines if the application can start.
	 */
	public boolean canStart() {
		return super.canStart();
	}
	
	/**
	 * If canStart returns true
     * this method is called to start the application.
     * Place your fun logic here. 
	 */
	public void doStart() {
		System.out.println("GPSAlarmClockServiceTracker: start");
		gpsUtil = (IGPSUtilProvider) getService(IGPSUtilProvider.class);
		position = (IPositionProvider) getService(IPositionProvider.class);
		display = (IModuleDisplay) getService(IModuleDisplay.class);
		GPSAlarmClockApp app = new GPSAlarmClockApp(position, display, gpsUtil);
	}

	/**
	 * Called when a service that this application depends is unregistered.
	 */
	public void doStop() {
		System.out.println("GPSAlarmClockServiceTracker: stop");

	}

	/**
	 * Allows the user to set the service dependencies by
     * adding them to services list returned by getServices().
     * i.e.nl getServices().add(MyService.class.getName());
	 */
	public void initServices() {
		getServices().add("com.buglabs.bug.module.gps.pub.IPositionProvider");
		getServices().add("com.buglabs.bug.module.lcd.pub.IModuleDisplay");
		getServices().add("gpsutilities.pub.IGPSUtilProvider");
	}
	
}