public void OnItemClicked(IItemViewModel vm)
 {
     ItemClicked?.Invoke(this, new ItemClickedEventArgs()
     {
         SelectedItem = vm
     });
 }
Ejemplo n.º 2
0
        /// <summary>
        /// изменилось состояние
        /// выделения элемента курса
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected override void ChangeCheckItem(object sender, EventArgs e)
        {
            try
            {
                if (sender == null)
                {
                    throw new ArgumentNullException();
                }

                IItemViewModel checkedItem = (IItemViewModel)sender;

                if (checkedItem == null)
                {
                    throw new Exception("Неидентифицированный объект курса " + sender.GetType());
                }

                bool isChecked = checkedItem.IsChecked == false ? false : true;
                /*  model.SetIsConvertSelfOrChildren(checkedItem.Id, isChecked);*/

                if (checkedItem.IsChecked == false)
                {
                    RemoveCheckedItem(checkedItem.Id);
                }
                else
                {
                    AddCheckedItem(checkedItem.Id);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        protected void Init(bool letUpdateList = true)
        {
            model = new ListModel <IEventModel>();

            List <IItemModelAdapter <IEventModel> > items = new List <IItemModelAdapter <IEventModel> >();

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(235235, "Ivanovo", DateTime.Now, "Ivanovo station. 5 min.")));

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(945853, "Airport", DateTime.Now, "Airport station. 15 min.")));

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(124590, "Lake", DateTime.Now, "Lake station. 5 min. Temporarily closed.")));

            items.Add(new ItemModelAdapterForPassive <IEventModel>(new EventModel(744935, "Central station.", DateTime.Now, "Central station. 7 min.")));

            model.AddItems(items);

            var creator           = new EventViewModelCreator();
            var eventModelCreator = new EventModelAdapterCreator();

            var vm = new ListViewModel <IEventModel, IEventViewModel, IDetailEventViewModel>(model, creator, eventModelCreator);

            vm.LetUpdate = letUpdateList;
            viewModel    = vm;

            itemsVM = viewModel.ItemsVM;

            airportVM = itemsVM.FirstOrDefault(itmVM => itmVM.DataViewModel.Name == "Airport");
        }
Ejemplo n.º 4
0
 public ItemService(IItemViewModel viewModel, IRepositoryService repository)
 {
     _viewModel       = viewModel;
     _viewModel.Title = "Item";
     _viewModel.Item  = new Item();
     _repository      = repository;
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="leftItem">Элемент слева.</param>
        /// <param name="rightItem">Элемент справа.</param>
        public RowViewModel(IItemViewModel leftItem, IItemViewModel rightItem, IRowViewModel parent)
        {
            LeftItem  = leftItem;
            RightItem = rightItem;
            ChildRows = new ObservableCollection <IRowViewModel>();

            SetItemViewModelEvents(LeftItem);
            SetItemViewModelEvents(RightItem);
        }
		public ItemRelationViewModel(IViewModelsFactory<ISearchItemViewModel> vmFactory, ItemRelation item, IItemViewModel parent)
		{
			_vmFactory = vmFactory;
			InnerItem = item;
			Parent = parent;

			ItemPickCommand = new DelegateCommand(RaiseItemPickInteractionRequest);
			CommonConfirmRequest = new InteractionRequest<Confirmation>();
		}
        public ItemRelationViewModel(IViewModelsFactory <ISearchItemViewModel> vmFactory, ItemRelation item, IItemViewModel parent)
        {
            _vmFactory = vmFactory;
            InnerItem  = item;
            Parent     = parent;

            ItemPickCommand      = new DelegateCommand(RaiseItemPickInteractionRequest);
            CommonConfirmRequest = new InteractionRequest <Confirmation>();
        }
		public AssociationViewModel(IViewModelsFactory<ISearchItemViewModel> searchVmFactory, Association item, IItemViewModel parent)
		{
			InnerItem = item;
			_searchVmFactory = searchVmFactory;

			AvailableAssociationTypes = new[] { AssociationTypes.optional.ToString(), AssociationTypes.required.ToString() };

			ItemPickCommand = new DelegateCommand(RaiseItemPickInteractionRequest);
			CommonConfirmRequest = new InteractionRequest<Confirmation>();
		}
Ejemplo n.º 9
0
        public InfoViewModel(Info model, IItemViewModel owner)
        {
            _model = model;
            Owner  = owner;

            Authors = new AuthorsViewModel(_model.Authors, this);
            Sources = new SourcesViewModel(_model.Sources, this);

            BindHelper.Bind(Authors, _model.Authors);
            BindHelper.Bind(Sources, _model.Sources);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// установить "развернутость"
        /// узла
        /// </summary>
        private void SetExpanded(IItemViewModel itm)
        {
            if (itm.Children == null || itm.Children.Count < 1)
            {
                return;
            }

            itm.Children[0].IsExpanded = true;
            foreach (IItemViewModel iiv in itm.Children[0].Children)
            {
                SetExpanded(iiv);
            }
        }
        public ItemPageController
        (
            ILrpNavigation navigation,
            IItemViewModel <TItem> viewModel,
            IItemPage <TItem> page
        )
        {
            _navigation = navigation ?? throw new ArgumentNullException(nameof(navigation));
            _viewModel  = viewModel ?? throw new ArgumentNullException(nameof(viewModel));
            _page       = page ?? throw new ArgumentNullException(nameof(page));

            WirePage();
        }
        public virtual void SelectItem(IItemViewModel <DataModelType, DataViewModelType> itemVM)
        {
            if (CanSelectItem())
            {
                //возникает когда удаляются все элементы из ObservCollection,
                //и устанавливается текущий элемент 0;
                if (itemVM == null)
                {
                    return;
                }
                var itemModel = itemVM.GetItemModel();

                SelectItemByModel(itemModel);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// класс представления единицы курса
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        public ItemViewModel(IItemModel _item, IItemViewModel _parent)
        {
            if (_item == null)
                throw new ArgumentNullException();

            Id = _item.Id;
           
            Name = _item.Title;

            Parent = _parent;

            InitChildren(_item);

            CacherChangeChildProperty();
            
        }
        void UpdateList(List <IItemViewModel <DataModelType, DataViewModelType> > itemViewModels)
        {
            //сохраняем текущий элемент
            //это необходимо, т.к. при последующей очистки списка, элемент обнуляется, из-за привязки
            var savedSelectedItem = SelectedItem;

            //производим полное обновление
            if (ItemsVM == null)
            {
                ItemsVM = new ObservableCollection <IItemViewModel <DataModelType, DataViewModelType> >(itemViewModels);
            }
            else
            {
                ItemsVM.Clear();
                foreach (var viewModel in itemViewModels)
                {
                    ItemsVM.Add(viewModel);
                }
            }

            //делаем необходимые действия если был выбранный элемент
            if (savedSelectedItem != null)
            {
                //ищем его в списке
                var selectedItemFromUpdate = itemViewModels.FirstOrDefault(itm => itm.DataViewModel.Equals(savedSelectedItem.DataViewModel));
                //текущего элемента нет в обновлении
                if (selectedItemFromUpdate == null)
                {
                    CurrentVM    = null;
                    SelectedItem = null;
                }
                //в противном случае, НЕ надо чтобы выбранный элемент был обновленным
                //он сам мебя должен обновлять
                //(такое ограничение, из-за того, что он сам может содержать свой список, который должен поддерживать текущий элемент)
                //устанавливаем только VM(не детальный)
                else
                {
                    selectedItem = selectedItemFromUpdate;
                    NotifyPropertyChanged("SelectedItem");

                    //var saveCurVM = CurrentVM;
                    //SelectedItem = selectedItemFromUpdate;
                    //CurrentVM = saveCurVM;
                }
            }
        }
        public void DeleteItem(IItemViewModel <DataModelType, DataViewModelType> itemVM)
        {
            if (CanDeleteItem())
            {
                ItemsVM.Remove(itemVM);
                var deleteModel  = itemVM.GetItemModel();
                var currentModel = CurrentVM.GetItemModel();

                if (deleteModel.DataModel.Equals(currentModel.DataModel))
                {
                    CurrentVM = null;
                }
                addedAndDelatedItems[deleteModel] = ChangeStatus.Delete;
                Debug.Assert(StateCanChanged != null);
                StateCanChanged(this, new EventArgs());
            }
        }
Ejemplo n.º 16
0
        public AssociationGroupViewModel(
            IViewModelsFactory <IAssociationViewModel> vmFactory,
            ICatalogEntityFactory entityFactory,
            AssociationGroup item,
            IItemViewModel parent)
        {
            InnerItem      = item;
            _vmFactory     = vmFactory;
            _entityFactory = entityFactory;
            _parent        = parent;

            ItemAddCommand    = new DelegateCommand(RaiseItemAddInteractionRequest);
            ItemEditCommand   = new DelegateCommand <Association>(RaiseItemEditInteractionRequest, x => x != null);
            ItemRemoveCommand = new DelegateCommand <Association>(RaiseItemRemoveInteractionRequest, x => x != null);

            CommonConfirmRequest = new InteractionRequest <Confirmation>();
        }
		public AssociationGroupViewModel(
			IViewModelsFactory<IAssociationViewModel> vmFactory, 
			ICatalogEntityFactory entityFactory, 
			AssociationGroup item, 
			IItemViewModel parent)
		{
			InnerItem = item;
			_vmFactory = vmFactory;
			_entityFactory = entityFactory;
			_parent = parent;

			ItemAddCommand = new DelegateCommand(RaiseItemAddInteractionRequest);
			ItemEditCommand = new DelegateCommand<Association>(RaiseItemEditInteractionRequest, x => x != null);
			ItemRemoveCommand = new DelegateCommand<Association>(RaiseItemRemoveInteractionRequest, x => x != null);

			CommonConfirmRequest = new InteractionRequest<Confirmation>();
		}
Ejemplo n.º 18
0
        /// <summary>
        /// класс представления единицы курса
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        public ItemViewModel(IItemModel _item, IItemViewModel _parent)
        {
            if (_item == null)
            {
                throw new ArgumentNullException();
            }

            Id = _item.Id;

            Name = _item.Title;

            Parent = _parent;

            InitChildren(_item);

            CacherChangeChildProperty();
        }
Ejemplo n.º 19
0
        /// <summary>
        /// инициализировать представления
        /// дочерних элементов
        /// </summary>
        private void InitChildren(IItemModel _item)
        {
            Children = new List <IItemViewModel>();

            if (_item.Items == null)
            {
                return;
            }


            IItemViewModel tmp = null;

            foreach (IItemModel im in _item.Items)
            {
                tmp = new ItemViewModel(im, this);
                Children.Add(tmp);
            }

            IsInitiallySelected = true;
        }
Ejemplo n.º 20
0
        public IMedia LoadMedia()
        {
            if (_mediaSource != null)
            {
                return(_mediaSource);
            }

            IItemViewModel root = OwnerScenario.Owner;

            while (root.Owner != null)
            {
                root = root.Owner;
            }

            if (!(root is PackageViewModel packageViewModel))
            {
                return(null);
            }

            _mediaSource = packageViewModel.Document.Wrap(this);

            return(_mediaSource);
        }
Ejemplo n.º 21
0
 public void ChangeFavorite(IItemViewModel item, bool starred)
 {
     item.Starred = starred;
     if (starred)
     {
         Api.Items.MarkStarred(item.Parameter.Id);
     }
     else
     {
         Api.Items.MarkUnstarred(item.Parameter.Id);
     }
 }
Ejemplo n.º 22
0
 public void ChangeUnread(IItemViewModel item, bool unread)
 {
     item.Unread = unread;
     if (unread)
     {
         Api.Items.MarkUnread(item.Parameter.Id);
     }
     else
     {
         Api.Items.MarkRead(item.Parameter.Id);
     }
 }
Ejemplo n.º 23
0
 private void SetItemViewModelEvents(IItemViewModel itemViewModel)
 {
     itemViewModel.AcceptCommandChangedEvent += AcceptCommandChanged;
     itemViewModel.SyncErrorEvent            += (string error) => { SyncErrorEvent?.Invoke(error); };
 }
        public AssociationViewModel(IViewModelsFactory <ISearchItemViewModel> searchVmFactory, Association item, IItemViewModel parent)
        {
            InnerItem        = item;
            _searchVmFactory = searchVmFactory;

            AvailableAssociationTypes = new[] { AssociationTypes.optional.ToString(), AssociationTypes.required.ToString() };

            ItemPickCommand      = new DelegateCommand(RaiseItemPickInteractionRequest);
            CommonConfirmRequest = new InteractionRequest <Confirmation>();
        }
Ejemplo n.º 25
0
        /// <summary>
        /// установить "развернутость"
        /// узла
        /// </summary>
        private void SetExpanded(IItemViewModel itm)
        {
            if (itm.Children == null || itm.Children.Count<1)
                return;

            itm.Children[0].IsExpanded = true;
            foreach (IItemViewModel iiv in itm.Children[0].Children)
                SetExpanded(iiv);
        }