/// <summary>
        /// Initializes the specified view configurator.
        /// </summary>
        /// <param name="viewConfigurator">The view configurator.</param>
        /// <param name="parentViewModel">The parent view model.</param>
        public void Init(IProcessViewConfigurator viewConfigurator, ProcessViewsViewModel parentViewModel)
        {
            _viewConfigurator = (DocumentProcessViewConfigurator)viewConfigurator;
            RaisePropertyChanged(() => ViewConfigurator);

            _parentViewModel = parentViewModel;
            RaisePropertyChanged(() => Parent);
        }
        /// <summary>
        /// Initializes the specified view configurator.
        /// </summary>
        /// <param name="viewConfigurator">The view configurator.</param>
        /// <param name="parentViewModel">The parent view model.</param>
        public void Init(IProcessViewConfigurator viewConfigurator, ProcessViewsViewModel parentViewModel)
        {
            _viewConfigurator = (DataCollectProcessViewConfigurator) viewConfigurator;
            RaisePropertyChanged(() => ViewConfigurator);

            _parentViewModel = parentViewModel;
            RaisePropertyChanged(() => Parent);

            AvailableFields = new ObservableCollection<IDisplayFieldViewModel>();

            SelectedDisplayFields.Clear();
            foreach (var df in _viewConfigurator.ExistingRecordFields)
            {
                var vm = new SelectedFieldViewModel();
                vm.Initialize(df, this);
                SelectedDisplayFields.Add(vm);

                var node = FindNode(df.FullPath);
                if (node != null)
                {
                    node.IsSelected = false;
                }
            }

            UpdateCanMoveFields();

            SetupProcessFields();
            LoadFilters();

            SetEventListener();
        }