public override void Execute(object parameter) { var selectedItems = GetSelectedItems(); if (selectedItems.Count != 1) { return; } var items = GetProjects(selectedItems); var project = ProjectManager.GetProject(items[0].FileName); if (project == null) { return; } var site = project.Site; if (site == null) { return; } var dialog = new CheckOutDialog(site); if (AppHost.Shell.ShowDialog(dialog) != true) { return; } var projectItems = CreateProjectItems(project, dialog.Files.SelectedItems); Download(projectItems); AddItems(projectItems); project.Save(); }
private List <MenuItem> EditGroup(List <ExtendedItem> items) { var groupItems = new List <MenuItem>(); //Check Out var checkOutItems = items.Where(i => i.ChangeType == ChangeType.None || i.ChangeType == ChangeType.Lock || i.ItemType == ItemType.Folder).ToList(); if (checkOutItems.Any()) { MenuItem checkOutItem = new MenuItem(GettextCatalog.GetString("Check out items")); checkOutItem.Activated += (sender, e) => { CheckOutDialog.Open(checkOutItems, _currentWorkspace); FireFilesChanged(checkOutItems); RefreshList(items); }; groupItems.Add(checkOutItem); } //Lock var lockItems = items.Where(i => !i.IsLocked).ToList(); if (lockItems.Any()) { MenuItem lockItem = new MenuItem(GettextCatalog.GetString("Lock")); lockItem.Activated += (sender, e) => { LockDialog.Open(lockItems, _currentWorkspace); FireFilesChanged(lockItems); RefreshList(items); }; groupItems.Add(lockItem); } //UnLock var unLockItems = items.Where(i => i.IsLocked && !i.HasOtherPendingChange).ToList(); if (unLockItems.Any()) { MenuItem unLockItem = new MenuItem(GettextCatalog.GetString("UnLock")); unLockItem.Activated += (sender, e) => { var folders = new List <string>(unLockItems.Where(i => i.ItemType == ItemType.Folder).Select(i => (string)i.ServerPath)); var files = new List <string>(unLockItems.Where(i => i.ItemType == ItemType.File).Select(i => (string)i.ServerPath)); _currentWorkspace.LockFolders(folders, LockLevel.None); _currentWorkspace.LockFiles(files, LockLevel.None); FireFilesChanged(unLockItems); RefreshList(items); }; groupItems.Add(unLockItem); } //Rename var ableToRename = items.FirstOrDefault(i => !i.ChangeType.HasFlag(ChangeType.Delete)); if (ableToRename != null) { MenuItem renameItem = new MenuItem(GettextCatalog.GetString("Rename")); renameItem.Activated += (sender, e) => { RenameDialog.Open(ableToRename, _currentWorkspace); FireFilesChanged(new List <ExtendedItem> { ableToRename }); RefreshList(items); }; groupItems.Add(renameItem); } //Delete var ableToDelete = items.Where(i => !i.ChangeType.HasFlag(ChangeType.Delete)).ToList(); if (ableToDelete.Any()) { MenuItem deleteItem = new MenuItem(GettextCatalog.GetString("Delete")); deleteItem.Activated += (sender, e) => DeleteItems(ableToDelete); groupItems.Add(deleteItem); } //Undo var undoItems = items.Where(i => !i.ChangeType.HasFlag(ChangeType.None) || i.ItemType == ItemType.Folder).ToList(); if (undoItems.Any()) { MenuItem revertItem = new MenuItem(GettextCatalog.GetString("Undo Changes")); revertItem.Activated += (sender, e) => { UndoDialog.Open(undoItems, _currentWorkspace); FireFilesChanged(undoItems); RefreshList(items); }; groupItems.Add(revertItem); MenuItem checkinItem = new MenuItem(GettextCatalog.GetString("Check In pending changes")); checkinItem.Activated += (sender, e) => { CheckInDialog.Open(undoItems, _currentWorkspace); FireFilesChanged(undoItems); RefreshList(items); }; groupItems.Add(checkinItem); } return(groupItems); }