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? }
/// <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); } }
/// <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(); } }
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()); }
/// <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); } }
/// <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); } }
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()); }
/// <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(); }
/// <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); }