/// <summary> /// React to a request for a view to be opened; /// Instantiate an appropiate controller. /// </summary> /// <param name="type">The type of view to be opened.</param> /// <param name="subView">The View to be used.</param> public void ViewOpened(Model.ChangeType type, ISubView subView) { switch (type) { case Model.ChangeType.VCG: var vcgModel = (VoterCardGenerator)subView.GetModel(); var vcgView = (VoterCardGeneratorWindow)subView; vcgView.AddClosingHandler(this.model.CloseSubModel); new VoterCardGeneratorController(vcgModel, vcgView); break; case Model.ChangeType.VBM: var vbmModel = (VoterBoxManager)subView.GetModel(); var vbmView = (VoterBoxManagerWindow)subView; vbmView.AddClosingHandler(this.model.CloseSubModel); new VoterBoxManagerController(vbmModel, vbmView); break; } }
/// <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); } }