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