コード例 #1
0
        /// <summary>
        /// Class constructor
        /// </summary>
        public ListControllerViewModel()
        {
            _SlowStuffSemaphore = new SemaphoreSlim(1, 1);
            _OneTaskScheduler   = new OneTaskLimitedScheduler();
            _CancelTokenSource  = new CancellationTokenSource();

            FolderItemsView = FileListView.Factory.CreateFileListViewModel();
            FolderTextPath  = FolderControlsLib.Factory.CreateFolderComboBoxVM();
            RecentFolders   = FileSystemModels.Factory.CreateBookmarksViewModel();

            // This is fired when the user selects a new folder bookmark from the drop down button
            WeakEventManager <ICanNavigate, BrowsingEventArgs>
            .AddHandler(RecentFolders, "BrowseEvent", Control_BrowseEvent);

            // This is fired when the text path in the combobox changes to another existing folder
            WeakEventManager <ICanNavigate, BrowsingEventArgs>
            .AddHandler(FolderTextPath, "BrowseEvent", Control_BrowseEvent);

            Filters = FilterControlsLib.Factory.CreateFilterComboBoxViewModel();
            WeakEventManager <IFilterComboBoxViewModel, FilterChangedEventArgs>
            .AddHandler(Filters, "OnFilterChanged", FileViewFilter_Changed);

            // This is fired when the current folder in the listview changes to another existing folder
            WeakEventManager <ICanNavigate, BrowsingEventArgs>
            .AddHandler(FolderItemsView, "BrowseEvent", Control_BrowseEvent);

            // This is fired when the user requests to add a folder into the list of recently visited folders
            WeakEventManager <IEditBookmarks, EditBookmarkEvent>
            .AddHandler(FolderItemsView.BookmarkFolder, "RequestEditBookmarkedFolders", FolderItemsView_RequestEditBookmarkedFolders);

            // This event is fired when a user opens a file
            WeakEventManager <IFileOpenEventSource, FileOpenEventArgs>
            .AddHandler(FolderItemsView, "OnFileOpen", FolderItemsView_OnFileOpen);
        }
コード例 #2
0
        /// <summary>
        /// Source: http://www.codeproject.com/Articles/15360/Implementing-IDisposable-and-the-Dispose-Pattern-P
        /// </summary>
        /// <param name="disposing"></param>
        protected virtual void Dispose(bool disposing)
        {
            if (_disposed == false)
            {
                if (disposing == true)
                {
                    // Dispose of the currently used inner disposables
                    _OneTaskScheduler.Dispose();
                    _Semaphore.Dispose();
                    _CancelTokenSource.Dispose();
                    TaskQueue.Dispose();

                    _OneTaskScheduler  = null;
                    _Semaphore         = null;
                    _CancelTokenSource = null;
                }

                // There are no unmanaged resources to release, but
                // if we add them, they need to be released here.
            }

            _disposed = true;

            //// If it is available, make the call to the
            //// base class's Dispose(Boolean) method
            ////base.Dispose(disposing);
        }
コード例 #3
0
        /// <summary>
        /// Class constructor.
        /// </summary>
        public BreadCrumbControllerViewModel()
        {
            _Semaphore         = new SemaphoreSlim(1, 1);
            _OneTaskScheduler  = new OneTaskLimitedScheduler();
            _CancelTokenSource = new CancellationTokenSource();

            TaskQueue = new BrowseRequestTaskQueueViewModel();

            // Initialize Breadcrumb Tree ViewModel and SpecialFolders Test ViewModel
            BreadcrumbBrowser = new BreadcrumbViewModel(this as INavigationController);

            WeakEventManager <ICanNavigate, BrowsingEventArgs>
            .AddHandler(BreadcrumbBrowser, "BrowseEvent", Control_BrowseEvent);
        }
コード例 #4
0
        /// <summary>
        /// Class constructor
        /// </summary>
        public DiffSideViewModel()
        {
            _position = new DiffViewPosition(0, 0);

            _DocLineDiffsLock = new object();
            _DocLineDiffs     = new ObservableRangeCollection <IDiffLineViewModel>();
            BindingOperations.EnableCollectionSynchronization(_DocLineDiffs, _DocLineDiffsLock);

            _Line   = 0;
            _Column = 0;

            _TxtControl     = new TextBoxController();
            _ViewActivation = DateTime.MinValue;

            _oneTaskScheduler = new OneTaskLimitedScheduler();
        }
コード例 #5
0
        /// <summary>Class constructor</summary>
        public DiffSideViewModel()
        {
            _position = new DiffViewPosition(0, 0);

            _DocLineDiffsLock = new object();
            _DocLineDiffs     = new ObservableRangeCollection <IDiffLineViewModel>();
            BindingOperations.EnableCollectionSynchronization(_DocLineDiffs, _DocLineDiffsLock);

            _ViewActivation = DateTime.MinValue;

            _oneTaskScheduler = new OneTaskLimitedScheduler();

            CurrentViewMode = DisplayMode.Comparing;
            _DocumentViews  = new ObservableCollection <DiffSideTextViewModel>();

            SetDocumentViews(string.Empty, string.Empty, Encoding.Default, string.Empty, false);
        }
コード例 #6
0
        /// <summary>
        /// Class constructor
        /// </summary>
        public FileExplorerViewModel(ISettingsManager programSettings,
                                     IFileOpenService fileOpenService)
            : base("Explorer")
        {
            base.ContentId = ToolContentId;

            this.mFileOpenService = fileOpenService;

            this.OnActiveDocumentChanged(null, null);

            //
            _SlowStuffSemaphore = new SemaphoreSlim(1, 1);
            _OneTaskScheduler   = new OneTaskLimitedScheduler();
            _CancelTokenSourc   = new CancellationTokenSource();

            FolderItemsView = FileListView.Factory.CreateFileListViewModel();
            FolderTextPath  = FolderControlsLib.Factory.CreateFolderComboBoxVM();
            RecentFolders   = FileSystemModels.Factory.CreateBookmarksViewModel();
            TreeBrowser     = FolderBrowser.FolderBrowserFactory.CreateBrowserViewModel(false);

            // This is fired when the user selects a new folder bookmark from the drop down button
            RecentFolders.BrowseEvent += FolderTextPath_BrowseEvent;

            // This is fired when the text path in the combobox changes to another existing folder
            FolderTextPath.BrowseEvent += FolderTextPath_BrowseEvent;

            Filters = FilterControlsLib.Factory.CreateFilterComboBoxViewModel();
            Filters.OnFilterChanged += this.FileViewFilter_Changed;

            // This is fired when the current folder in the listview changes to another existing folder
            this.FolderItemsView.BrowseEvent += FolderTextPath_BrowseEvent;

            // Event fires when the user requests to add a folder into the list of recently visited folders
            this.FolderItemsView.BookmarkFolder.RequestEditBookmarkedFolders += this.FolderItemsView_RequestEditBookmarkedFolders;

            // This event is fired when a user opens a file
            this.FolderItemsView.OnFileOpen += this.FolderItemsView_OnFileOpen;

            TreeBrowser.BrowseEvent += FolderTextPath_BrowseEvent;

            // Event fires when the user requests to add a folder into the list of recently visited folders
            TreeBrowser.BookmarkFolder.RequestEditBookmarkedFolders += this.FolderItemsView_RequestEditBookmarkedFolders;

            ExplorerSettingsModel settings = null;

            if (programSettings != null)
            {
                if (programSettings.SessionData != null)
                {
                    settings = programSettings.SettingData.ExplorerSettings;
                }
            }

            if (settings == null)
            {
                settings = new ExplorerSettingsModel();
            }

            if (programSettings.SessionData.LastActiveExplorer != null)
            {
                settings.SetUserProfile(programSettings.SessionData.LastActiveExplorer);
            }
            else
            {
                settings.UserProfile.SetCurrentPath(@"C:");
            }

            if (settings.UserProfile.CurrentPath != null)
            {
                _InitialPath = settings.UserProfile.CurrentPath.Path;
            }


            this.ConfigureExplorerSettings(settings);
            this.mFileOpenMethod = this.mFileOpenService.FileOpen;
        }