private void OnListItemClicked(object sender, RowActivatedArgs e) { TreeIter iter; if (!_listStore.GetIter(out iter, e.Path)) { return; } var item = (ExtendedItem)_listStore.GetValue(iter, 0); if (item.ItemType == ItemType.Folder) { ExpandPath(item.TargetServerItem); return; } if (item.ItemType == ItemType.File) { if (IsMapped(item.ServerPath)) { if (item.IsInWorkspace) { if (MonoDevelop.Projects.Services.ProjectService.IsWorkspaceItemFile(item.LocalItem)) { IdeApp.Workspace.OpenWorkspaceItem(item.LocalItem, true); } else { IdeApp.Workbench.OpenDocument(item.LocalItem, null, true); } } else { var filePath = this.DownloadItemToTemp(item); if (MonoDevelop.Projects.Services.ProjectService.IsWorkspaceItemFile(filePath)) { var parentFolder = _currentWorkspace.GetExtendedItem(item.ServerPath.ParentPath, ItemType.Folder); if (parentFolder == null) { return; } GetLatestVersion(new List <ExtendedItem> { parentFolder }); var futurePath = _currentWorkspace.GetLocalPathForServerPath(item.ServerPath); IdeApp.Workspace.OpenWorkspaceItem(futurePath, true); FileHelper.FileDelete(filePath); } else { IdeApp.Workbench.OpenDocument(filePath, null, null); } } } else { var filePath = this.DownloadItemToTemp(item); IdeApp.Workbench.OpenDocument(filePath, null, true); } } }