public void LoadItemsCompleted() { AppHost.Output.Log("LoadItemsCompleted"); ContentModel.BuildModel(); ContentModel.IsModified = false; RenderItems(); AppHost.Selection.Track(Pane, ContentModel.Items.Select(item => new TrackSelectionDescriptor(item))); ActiveContext.RaiseContentModelChanged(); ItemBreadcrumb.EndLoading(); }
private void RenderItems() { Editor.IsEnabled = true; var contentModel = ContentModel; if (contentModel.IsEmpty) { ShowEmptyEditor(); return; } UpdateCaption(contentModel); LoadEditor(); ItemBreadcrumb.Update(contentModel); Ribbon.Update(this); if (LoadItemsOperation != null && LoadItemsOperation.Options.AddToJournal) { Journal.Push(contentModel.UriList); } }
public ContentEditor() { ContentModel = new ContentModel(); Journal = new Journal <List <ItemVersionUri> >(); InitializeComponent(); AppearanceOptions = AppearanceManager.GetDefaultAppearanceOptions(this); BackButton.CommandTarget = this; ForwardButton.CommandTarget = this; Filter = string.Empty; ItemBreadcrumb.Initialize(this); Notifications.RegisterItemEvents(this, modified: ItemModified, renamed: ItemRenamed, deleted: ItemDeleted); Notifications.RegisterFieldEvents(this, FieldChanged); Notifications.RegisterTemplateEvents(this, saved: TemplateSaved, changed: TemplateChanged); GotFocus += FocusControl; Loaded += ControlLoaded; Notifications.Unloaded += ControlUnloaded; FilterWidth.Width = new GridLength(AppHost.Settings.GetInt("ContentEditor", "SplitterPosition", 150)); }
public void LoadItems([NotNull] List <ItemVersionUri> itemUriList, [NotNull] LoadItemsOptions options) { Assert.ArgumentNotNull(itemUriList, nameof(itemUriList)); Assert.ArgumentNotNull(options, nameof(options)); if (LoadItemsOperation != null && LoadItemsOperation.ItemsToLoad > 0) { AppHost.MessageBox(Rocks.Resources.You_are_already_loading_items, Rocks.Resources.ContentEditorLoadItemsLoading_in_Progress, MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } if (ContentModel.IsModified) { if (options.ForceReload) { switch (AppHost.MessageBox("There are unsaved changes.\n\nDo you want to save?", "Information", MessageBoxButton.YesNoCancel, MessageBoxImage.Question)) { case MessageBoxResult.Cancel: return; case MessageBoxResult.Yes: Save(); break; case MessageBoxResult.No: break; } } else { options.NewTab = true; options.ForceReload = true; AppHost.Windows.OpenContentEditor(itemUriList, options); return; } } Pane.Caption = Rocks.Resources.Loading; ItemBreadcrumb.StartLoading(); Editor.IsEnabled = false; try { ClearFieldControls(ContentModel); LoadItemsOperation = new LoadItemsOperation { ItemsToLoad = itemUriList.Count, Options = options }; var pipeline = LoadItemsPipeline.Run().WithParameters(itemUriList, LoadItemsOperation); ContentModel = pipeline.ContentModel; if (itemUriList.Count == 0) { LoadItemsCompleted(); return; } try { foreach (var uri in itemUriList) { if (uri.Site.DataService.GetItemFieldsAsync(uri, GetItemFieldsCallback)) { continue; } AppHost.Output.Log("Failed to load item: " + uri.ItemId); LoadItemsOperation.ItemsToLoad = 0; return; } } catch { AppHost.Output.Log("Failed to load items"); LoadItemsOperation.ItemsToLoad = 0; throw; } } finally { Editor.IsEnabled = true; } }