Example #1
0
        public void CloseNotifications()
        {
            // Subscribe to close events.
            var closed = new List <ISubModel>();

            this.model.SubModelClosed += closed.Add;

            // Retrieve submodels.
            IEnumerator <ISubModel> en = this.model.GetSubModels();

            en.MoveNext();
            ISubModel sm1 = en.Current;

            en.MoveNext();
            ISubModel sm2 = en.Current;

            // Close them.
            this.model.CloseSubModel(sm1);          // Close
            Assert.IsTrue(closed.Count == 1);       // Was I notified?
            Assert.IsTrue(closed[0].Equals(sm1));   // With the right instance?

            this.model.CloseSubModel(sm2);          // Close
            Assert.IsTrue(closed.Count == 2);       // Was I notified?
            Assert.IsTrue(closed[1].Equals(sm2));   // With the right instance?
        }
Example #2
0
 /// <summary>
 /// Close this submodel.
 /// </summary>
 /// <param name="subModel">The submodel to be closed.</param>
 public void CloseSubModel(ISubModel subModel)
 {
     this.subModels.Remove(subModel);
     if (SubModelClosed != null)
     {
         SubModelClosed(subModel);
     }
 }
Example #3
0
        /// <summary>
        /// Close a sub-view associated with a given sub-model.
        /// </summary>
        /// <param name="subModel">The sub-model of the sub-view to be closed.</param>
        private void CloseView(ISubModel subModel)
        {
            ISubView subView = subViews.Find(v => v.GetModel().Equals(subModel));

            subViews.Remove(subView);

            var form = (Form)subView;

            if (!form.Disposing)
            {
                form.Close();
            }
        }
Example #4
0
        public void CloseSubModels()
        {
            // Retrieve and close the VoterCardGenerator.
            IEnumerator <ISubModel> en = this.model.GetSubModels();

            en.MoveNext();
            ISubModel vcg = en.Current;

            this.model.CloseSubModel(vcg);

            // Retrieve submodels and verify that only the VoterBoxManager remains.
            en = this.model.GetSubModels();
            en.MoveNext();
            Assert.IsInstanceOfType(en.Current, typeof(VoterBoxManager));
            Assert.IsFalse(en.MoveNext());
        }
Example #5
0
        /// <summary>
        /// Open and initialize a new sub-view of the given type using the given sub-model.
        /// </summary>
        /// <param name="type">Type of the new sub-view.</param>
        /// <param name="subModel">Sub-model of the new sub-view.</param>
        private void OpenView(Model.ChangeType type, ISubModel subModel)
        {
            ISubView subView = null;

            switch (type)
            {
            case Model.ChangeType.VCG:
                subView = new VoterCardGeneratorWindow((VoterCardGenerator)subModel);
                break;

            case Model.ChangeType.VBM:
                subView = new VoterBoxManagerWindow((VoterBoxManager)subModel);
                break;
            }
            subViews.Add(subView);
            if (SubViewOpened != null)
            {
                SubViewOpened(type, subView);
            }
        }
Example #6
0
        /// <summary>
        /// Open a new submodel of a given type.
        /// </summary>
        /// <param name="type">The type of submodel to be opened.</param>
        public void OpenSubModel(ChangeType type)
        {
            ISubModel subModel = null;

            switch (type)
            {
            case ChangeType.VCG:
                subModel = new VoterCardGenerator(VoterSelection.CurrentFilter);
                break;

            case ChangeType.VBM:
                subModel = new VoterBoxManager(VoterSelection.CurrentFilter);
                break;
            }
            this.subModels.Add(subModel);
            if (SubModelOpened != null)
            {
                SubModelOpened(type, subModel);
            }
        }
Example #7
0
        public void CloseSubSystems()
        {
            // Set up an object scenario similar to the end of 'OpenSubSystems()'.
            // ie. a model/view system with 2 sub-systems open.
            this.model.OpenSubModel(Model.ChangeType.VCG);
            this.model.OpenSubModel(Model.ChangeType.VBM);

            // Retrieve the 2 sub-systems.
            IEnumerator <ISubModel> en = this.model.GetSubModels();

            en.MoveNext();
            ISubModel vcg = en.Current;

            Assert.IsInstanceOfType(vcg, typeof(VoterCardGenerator));
            en.MoveNext();
            ISubModel vbm = en.Current;

            Assert.IsInstanceOfType(vbm, typeof(VoterBoxManager));
            Assert.IsFalse(en.MoveNext());

            // Order the VoterCardGenerator to be closed.
            this.model.CloseSubModel(vcg);

            // Retrieve sub-views and verify that only the VoterBoxManagerWindow remains.
            IEnumerator <ISubView> env = this.view.GetSubViews();

            env.MoveNext();
            Assert.IsInstanceOfType(env.Current, typeof(VoterBoxManagerWindow));
            Assert.IsFalse(env.MoveNext());

            // Order the VoterBoxManager to be clsoed.
            this.model.CloseSubModel(vbm);

            // Retrieve sub-views and verify that no sub-views remain.
            env = this.view.GetSubViews();
            Assert.IsFalse(env.MoveNext());
        }
Example #8
0
        /// <summary>
        /// Close a sub-view associated with a given sub-model.
        /// </summary>
        /// <param name="subModel">The sub-model of the sub-view to be closed.</param>
        private void CloseView(ISubModel subModel)
        {
            ISubView subView = subViews.Find(v => v.GetModel().Equals(subModel));
            subViews.Remove(subView);

            var form = (Form)subView;
            if (!form.Disposing) form.Close();
        }
Example #9
0
 /// <summary>
 /// Open and initialize a new sub-view of the given type using the given sub-model.
 /// </summary>
 /// <param name="type">Type of the new sub-view.</param>
 /// <param name="subModel">Sub-model of the new sub-view.</param>
 private void OpenView(Model.ChangeType type, ISubModel subModel)
 {
     ISubView subView = null;
     switch (type)
     {
         case Model.ChangeType.VCG:
             subView = new VoterCardGeneratorWindow((VoterCardGenerator)subModel);
             break;
         case Model.ChangeType.VBM:
             subView = new VoterBoxManagerWindow((VoterBoxManager)subModel);
             break;
     }
     subViews.Add(subView);
     if (SubViewOpened != null) SubViewOpened(type, subView);
 }