MonoDevelop.VersionControl.TFS.GUI.VersionControl.SourceControlExplorerView.OnListItemClicked C# (CSharp) Method

OnListItemClicked() private method

private OnListItemClicked ( object sender, Gtk.RowActivatedArgs e ) : void
sender object
e Gtk.RowActivatedArgs
return void
        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);
                }
            }
        }