IEnumerator RenamePackageAsync(PackageInfo info)
        {
            var newPackageName = _view.PromptForInput("Enter package name:", info.Name);

            yield return(newPackageName);

            if (newPackageName.Current == null)
            {
                // User Cancelled
                yield break;
            }

            if (newPackageName.Current == info.Name)
            {
                yield break;
            }

            var dirInfo = new DirectoryInfo(info.Path);

            Assert.That(dirInfo.Name == info.Name);

            var newPath = Path.Combine(dirInfo.Parent.FullName, newPackageName.Current);

            Assert.That(!Directory.Exists(newPath), "Package with name '{0}' already exists.  Rename aborted.", newPackageName.Current);

            dirInfo.MoveTo(newPath);

            yield return(_packageHandler.RefreshPackagesAsync());

            _view.ClearSelected();
            _view.GetList(DragListTypes.Package).Values
            .Where(x => ((PackageInfo)x.Model).Name == newPackageName.Current).Single().IsSelected = true;
        }
Beispiel #2
0
        public void Initialize()
        {
            _model.PluginItemsChanged        += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
            _model.AssetItemsChanged         += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
            _model.PackageFoldersChanged     += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
            _model.ReleasesChanged           += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
            _model.PackageFolderIndexChanged += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
            _model.VsProjectsChanged         += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);

            _view.ViewStateChanged += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);

            foreach (var list in _view.Lists)
            {
                list.SortDescendingChanged += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
                list.SortMethodChanged     += _eventManager.Add(OnViewValuesDirty, EventQueueMode.LatestOnly);
            }

            // Don't bother showing the search pane for assets / plugins  - Or is that useful?

            var releaseList = _view.GetList(DragListTypes.Release);

            releaseList.ShowSortPane       = true;
            releaseList.SortMethodCaptions = new List <string>()
            {
                // These should match ReleasesSortMethod
                "Order By Name",
                "Order By File Modification Time",
                "Order By Size",
                "Order By Release Date"
            };

            var packagesList = _view.GetList(DragListTypes.Package);

            packagesList.ShowSortPane       = true;
            packagesList.SortMethodCaptions = new List <string>()
            {
                // These should match PackagesSortMethod
                "Order By Name",
                "Order By Install Date",
                "Order By Release Date"
            };

            _eventManager.Trigger(OnViewValuesDirty);
        }
Beispiel #3
0
        void SelectAll()
        {
            var selected = _view.GetSelected();

            if (!selected.IsEmpty())
            {
                var listType = selected[0].ListType;

                Assert.That(selected.All(x => x.ListType == listType));

                _view.GetList(listType).SelectAll();
            }
        }