by Doug Simpson
26. April 2010 02:08
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.Composite.Presentation.Commands;
using ETSim.Business;
using Microsoft.Practices.Composite.Regions;
using ETSim.Infrastructure;
using Microsoft.Practices.Unity;
using ETSim.Modules.Units.UnitDetails;
namespace ETSim.Modules.Units.Controllers
{
public class UnitController : IUnitController
{
IUnityContainer container;
IRegionManager regionManager;
public UnitController(IUnityContainer container, IRegionManager regionManager)
{
this.container = container;
this.regionManager = regionManager;
this.ShowUnitDetails = new DelegateCommand<Unit>(u => this.OnShowDetail(u));
this.CloseUnitDetails = new DelegateCommand<Unit>(u => this.OnCloseDetail(u));
}
#region IUnitController Members
public DelegateCommand<Unit> ShowUnitDetails
{
get;
private set;
}
public DelegateCommand<Unit> CloseUnitDetails
{
get;
private set;
}
#endregion IUnitController Members
private void OnShowDetail(Unit unit)
{
this.RemoveDetailView();
this.ShowDetailView();
}
private void OnCloseDetail(Unit unit)
{
this.RemoveDetailView();
}
private void RemoveDetailView()
{
IRegion region = this.regionManager.Regions[RegionNames.ActionRegion];
object unitDetailView = region.GetView("UnitDetailView");
if (unitDetailView != null)
{
region.Remove(unitDetailView);
}
}
private void ShowDetailView()
{
IRegion region = this.regionManager.Regions[RegionNames.ActionRegion];
object unitDetailView = region.GetView("UnitDetailView");
if (unitDetailView == null)
{
var unitDetailPresentationModel = this.container.Resolve<IUnitDetailPresentationModel>();
unitDetailView = unitDetailPresentationModel.View;
region.Add(unitDetailView, "UnitDetailView");
}
region.Activate(unitDetailView);
}
}
}
98957bae-9e91-400a-b6f0-cc44ee0c832f|0|.0
Tags: