package aimmotionnotifier.servicetracker;
import org.osgi.framework.BundleContext;
import com.buglabs.application.AbstractServiceTracker;
import com.buglabs.bug.module.gps.pub.IPositionProvider;
import com.buglabs.bug.module.lcd.pub.IModuleDisplay;
import com.buglabs.bug.module.motion.pub.IMotionSubject;
import aimmotionnotifier.ui.AIMMotionNotifierApp;
/**
* Service tracker for the BugApp Bundle.
* Most of it was generated by the Bug Application Wizard.
* Alterations were maid to member variables, doStart(),
* and doStop() methods.
* @author Dragonfly - Bug Application Wizard
* @author John Connolly - jeconnol@gmail.com
*/
public class AIMMotionNotifierServiceTracker extends AbstractServiceTracker {
private IMotionSubject motion;
private IPositionProvider position;
private IModuleDisplay display;
public AIMMotionNotifierServiceTracker(BundleContext context) {
super(context);
}
/**
* Determines if the application can start.
*/
public boolean canStart() {
return super.canStart();
}
/**
* Obtains handles to all service dependencies.
* Creates the FlickrUpprApp and displays it.
*/
public void doStart() {
display = (IModuleDisplay) getService(IModuleDisplay.class);
motion = (IMotionSubject) getService(IMotionSubject.class);
position = (IPositionProvider) getService(IPositionProvider.class);
System.out.println("AIMMotionNotifier: start");
AIMMotionNotifierApp amna = new AIMMotionNotifierApp(display, motion, position);
motion.register(amna);
amna.createUI();
amna.show();
}
/**
* Called when a service that this application depends is unregistered.
*/
public void doStop() {
System.out.println("AIMMotionNotifierServiceTracker: stop");
}
/**
* Allows the user to set the service dependencies by
* adding them to services list returned by getServices().
* i.e. getServices().add(MyService.class.getName());
*/
public void initServices() {
getServices().add("com.buglabs.bug.module.lcd.pub.IModuleDisplay");
getServices().add("com.buglabs.bug.module.motion.pub.IMotionSubject");
getServices().add("com.buglabs.bug.module.gps.pub.IPositionProvider");
}
}