Beispiel #1
0
        public WorkspaceItem ReloadItem(IProgressMonitor monitor, WorkspaceItem item)
        {
            if (Items.IndexOf(item) == -1)
            {
                throw new InvalidOperationException("Item '" + item.Name + "' does not belong to workspace '" + Name + "'");
            }

            // Load the new item

            WorkspaceItem newItem;

            try {
                newItem = Services.ProjectService.ReadWorkspaceItem(monitor, item.FileName);
            } catch (Exception ex) {
                UnknownWorkspaceItem e = new UnknownWorkspaceItem();
                e.LoadError = ex.Message;
                e.FileName  = item.FileName;
                newItem     = e;
            }

            // Replace in the file list
            Items.Replace(item, newItem);

            NotifyModified();
            NotifyItemRemoved(new WorkspaceItemChangeEventArgs(item, true));
            NotifyItemAdded(new WorkspaceItemChangeEventArgs(newItem, true));

            item.Dispose();
            return(newItem);
        }
		public Task<WorkspaceItem> ReloadItem (ProgressMonitor monitor, WorkspaceItem item)
		{
			return Runtime.RunInMainThread (async delegate {
				if (Items.IndexOf (item) == -1)
					throw new InvalidOperationException ("Item '" + item.Name + "' does not belong to workspace '" + Name + "'");

				// Load the new item
				
				WorkspaceItem newItem;
				try {
					newItem = await Services.ProjectService.ReadWorkspaceItem (monitor, item.FileName);
				} catch (Exception ex) {
					UnknownWorkspaceItem e = new UnknownWorkspaceItem ();
					e.LoadError = ex.Message;
					e.FileName = item.FileName;
					newItem = e;
				}
				
				// Replace in the file list
				Items.Replace (item, newItem);
				
				NotifyModified ();
				NotifyItemRemoved (new WorkspaceItemChangeEventArgs (item, true));
				NotifyItemAdded (new WorkspaceItemChangeEventArgs (newItem, true));
				
				item.Dispose ();
				return newItem;
			});
		}