예제 #1
0
        public SwitchExecutiveControl(
            string editTimeConfiguration,
            string runTimeConfiguration,
            UpdateConfigurationDelegate updateConfigurationDelegate,
            PanelPresentation requestedPresentation)
        {
            InitializeComponent();

            /* used to save/load our view models and models.  for save we serialize
             * and return the string to InstrumentStudio via the UpdateConfiguraitonDelegate.  This
             * class also handles not saving during load.  */
            var saveDelegator = new SaveDelegator(updateConfigurationDelegate);

            /* crete the main view model which creates all the child view models and models.  by
             * doing this creation here we imply that the view is created first. Also we:
             *
             * 1. check the registry to see if SwitchExecutive is installed.
             * 2. create a DriverOperations class that is basically our model and conneciton to the driver.
             * 3. create a status option that is shared to all view models.  this allows any code to report errors. */
            var mainViewModel =
                new SwitchExecutiveControlViewModel(
                    requestedPresentation,
                    NISwitchExecutiveDriverOperations.IsDriverInstalled(),
                    (ISwitchExecutiveDriverOperations) new NISwitchExecutiveDriverOperations(),
                    (ISave)saveDelegator,
                    (IStatus) new Status());

            /* attach the serialize and deserialize commands after.  This allows us to create any objects we need
             * prior to creating the ViewModels ... just for a cleaner construction. */
            saveDelegator.Attach(
                serialize: new Func <string>(() => mainViewModel.Serialize()),
                deserialize: o => mainViewModel.Deserialize(o));


            this.DataContext = mainViewModel;

            // update our state based on the state saved in the .sfp file
            saveDelegator.Deserialize(editTimeConfiguration);
            // restore connections from the saved file
            mainViewModel.ApplyLoadFromFile();
        }
 public void IsDriverInstalled_ReturnsTrue()
 {
     // The rest of these tests will fail if SwitchExecutive isn't installed. Needs default SwitchExecutiveExample in MAX.
     Assert.IsTrue(NISwitchExecutiveDriverOperations.IsDriverInstalled());
 }