/// <summary>
        /// Método invocado cuando se presiona el botón Editar
        /// </summary>
        /// <param name="sender">El objeto que genera al evento</param>
        /// <param name="e">Contiene infomación adicional acerca del evento</param>
        protected override void OnEditSelected(object sender, EventArgs e)
        {
            UserEditor addUser = (UserEditor)Editor;
            UserEntity user;

            Mode = EditionMode.Edit;

            if ((user = (UserEntity)Selected) == null)
            {
                Util.ShowErrorDialog(UtnEmall.ServerManager.Properties.Resources.NoUserSelected);
                return;
            }

            addUser.User = user;

            if (!addUser.LoadStores(Control.Session))
            {
                Util.ShowErrorDialog(UtnEmall.ServerManager.Properties.Resources.LoadStoreListFailed);
                return;
            }

            if (user == null)
            {
                Util.ShowErrorDialog(UtnEmall.ServerManager.Properties.Resources.NoUserSelected);
                return;
            }

            Control.HideLastShown();
            addUser.Visibility       = Visibility.Visible;
            Control.LastElementShown = addUser;
        }
        /// <summary>
        /// Constructor de clase
        /// </summary>
        /// <param name="control">Una referencia al control que contiene a este componente</param>
        /// <param name="manager">El componente que muestra un listado de entidades</param>
        /// <param name="editor">El componente que permite agregar o modificar una entidad</param>
        /// <param name="firstElement">El componente que tener el foco cuando se muestra el editor</param>
        public UserController(UserControl1 control, UserManager manager, UserEditor editor,
                              FrameworkElement firstElement, EditGroups editGroups)
            : base(control, manager, editor, firstElement, new LoadList(UserManager.Load),
                   new SaveEntity(UserManager.Save),
                   new RemoveEntity(UserManager.Delete))
        {
            UserManager userManager = (UserManager)manager;
            UserEditor  addUser     = (UserEditor)editor;

            this.editGroups = editGroups;

            addUser.OkSelected     += OnOkSelected;
            addUser.CancelSelected += OnCancelSelected;

            userManager.ItemList.NewButtonSelected    += OnNewSelected;
            userManager.ItemList.EditButtonSelected   += OnEditSelected;
            userManager.ItemList.DeleteButtonSelected += OnDeleteSelected;
            userManager.ItemList.ExtraButtonSelected  += OnExtraSelected;

            editGroups.OkSelected     += new EventHandler(OnEditGroupsOkSelected);
            editGroups.CancelSelected += new EventHandler(OnEditGroupsCancelSelected);
        }