internal Synchronizer(GraphController controller)
        {
            Validity.Assert(controller != null);

            this.controller        = controller;
            this.controller.Saved += new GraphSavedHandler(OnGraphSaved);

            // If we're running in NUnit, then the LiveRunner will not be created
            // since we do not yet have a way to test asynchronous calls and
            // their return values (and currently calls into LiveRunner
            // asynchronously creates some random failures in NUnit test cases).
            //
            if (null != CoreComponent.Instance.HostApplication)
            {
                this.runner                  = LiveRunnerFactory.CreateLiveRunner(controller);
                runner.GraphUpdateReady     += new GraphUpdateReadyEventHandler(OnRunnerGraphUpdateReady);
                runner.NodeValueReady       += new NodeValueReadyEventHandler(OnRunnerNodeValueReady);
                runner.NodesToCodeCompleted += new NodesToCodeCompletedEventHandler(OnNodesToCodeCompleted);
            }
            else
            {
#if false
                // This part of the code will be enabled .
                this.runner                  = LiveRunnerFactory.CreateLiveRunner(controller);
                runner.GraphUpdateReady     += OnNUnitGraphUpdateReady;
                runner.NodeValueReady       += OnNUnitNodeValueReady;
                runner.NodesToCodeCompleted += OnNUnitNodesToCodeCompleted;
#endif
            }
        }
        private void OnGraphSaved(object sender, EventArgs e)
        {
            if (null == this.runner) // Running in headless mode.
            {
                return;
            }
            GraphController controller = sender as GraphController;

            if (null != controller)
            {
                LiveRunner liveRunner = runner as LiveRunner;
                //Update the options with new path.
                liveRunner.SetOptions(LiveRunnerFactory.CreateLiveRunnerOptions(controller));
                GraphUtilities.SetRootModulePath(controller.FilePath);
            }
        }