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; }
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); }
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(); } }