Example #1
0
        public CharacterCollection(Dispatcher dispatcher, ICharacterViewModelProvider viewModelProvider)
        {
            _uiDispatcher = dispatcher;

            _sortProperties = viewModelProvider.GetSortableProperties()
                              .Select(pair => new ComboItem(pair.Value, pair.Key))
                              .ToArray();

            _sortProperty  = viewModelProvider.DefaultSortProperty;
            _sortDirection = viewModelProvider.DefaultSortDirection;

            _sortDirections = new[]
            {
                new ComboItem(ListSortDirection.Ascending, "Ascending"),
                //
                new ComboItem(ListSortDirection.Descending, "Descending")
            };

            ViewModelProvider = viewModelProvider;
            ViewModelProvider.CharacterAdded   += ProviderOnCharacterAdded;
            ViewModelProvider.CharacterUpdated += ProviderOnCharacterUpdated;

            Characters = new ObservableCollection <CharacterViewModel>(viewModelProvider.GetCharacters());
            foreach (CharacterViewModel model in Characters)
            {
                model.ParentCollection = this;
            }
        }
Example #2
0
        private void LoadCustomDir_Execute(bool subdirs)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog
            {
                Description         = "Select Directory to Load",
                ShowNewFolderButton = false,
                SelectedPath        = Core.EditSaveDir,
            };

            if (fbd.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }

            SeatDataBlock.ResetSeats();
            CharacterCollection collection = DataContext as CharacterCollection;

            if (collection != null)
            {
                while (!collection.ViewModelProvider.Finish())
                {
                    MessageBoxResult msg = MessageBox.Show(MESSAGE_ERROR_FINISH_PROVIDER,
                                                           "Error",
                                                           MessageBoxButton.OKCancel,
                                                           MessageBoxImage.Hand);
                    if (msg == MessageBoxResult.Cancel)
                    {
                        return;
                    }
                }
                collection.ViewModelProvider.Dispose();
            }

            ICharacterViewModelProvider viewModelProvider = subdirs
                ? new FileSystemCharacterViewModelProvider(true, fbd.SelectedPath)
                : new FileSystemCharacterViewModelProvider(false, fbd.SelectedPath);

            viewModelProvider.Initialize(this);

            viewModelProvider.CharacterLoaded += ViewModelProviderOnCharacterLoaded;
            CharacterCollection characterCollection = new CharacterCollection(Dispatcher, viewModelProvider);

            viewModelProvider.CharacterLoaded -= ViewModelProviderOnCharacterLoaded;
            SetTitle();
            DataContext = characterCollection;

            SortBox.SelectedValue           = viewModelProvider.DefaultSortProperty;
            OrderBox.SelectedValue          = viewModelProvider.DefaultSortDirection;
            CharactersControl.SelectedIndex = 0;
        }