public override object EditValue(ITypeDescriptorContext context, [CanBeNull] IServiceProvider provider, object value) { Assert.ArgumentNotNull(context, nameof(context)); var item = context.Instance as IItem; if (item == null) { return(value); } var dialog = new AddFromTemplateDialog { DatabaseUri = item.ItemUri.DatabaseUri }; if (AppHost.Shell.ShowDialog(dialog) != true) { return(value); } var selectedTemplate = dialog.SelectedTemplate; if (selectedTemplate == null) { return(value); } return(selectedTemplate.TemplateUri.ItemId.ToString()); }
public override void Execute(object parameter) { var context = parameter as TemplateFieldSorterContext; if (context == null) { return; } var dialog = new AddFromTemplateDialog { DatabaseUri = context.TemplateFieldSorter.TemplateUri.DatabaseUri }; dialog.AddInsertOptionsCheckBox.Visibility = Visibility.Collapsed; if (AppHost.Shell.ShowDialog(dialog) != true) { return; } var selectedTemplate = dialog.SelectedTemplate; if (selectedTemplate == null) { return; } context.TemplateFieldSorter.AddTemplate(selectedTemplate.TemplateUri, false); }
public override void Execute(object parameter) { var context = parameter as ContentTreeContext; if (context == null) { return; } var parent = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem; if (parent == null) { return; } var dialog = new AddFromTemplateDialog { DatabaseUri = parent.ItemUri.DatabaseUri }; if (AppHost.Shell.ShowDialog(dialog) != true) { return; } var template = dialog.SelectedTemplate; if (template == null) { return; } var items = new List <ItemVersionUri>(); foreach (var itemName in dialog.ItemNames) { ItemUri itemUri; if (template.IsBranch) { itemUri = parent.ItemUri.Site.DataService.AddFromMaster(parent.ItemUri, template.TemplateUri, itemName); } else { itemUri = parent.ItemUri.Site.DataService.AddFromTemplate(parent.ItemUri, template.TemplateUri, itemName); } if (itemUri == ItemUri.Empty) { continue; } var itemVersionUri = new ItemVersionUri(itemUri, LanguageManager.CurrentLanguage, Version.Latest); items.Add(itemVersionUri); } if (dialog.AddInsertOptionsCheckBox.IsChecked == true) { AddInsertOption(parent.Item, template.TemplateUri); } parent.RefreshAndExpand(false); if (items.Count() == 1) { var item = items.First(); var treeView = parent.GetAncestor <ItemTreeView>(); if (treeView != null) { treeView.ExpandTo(item.ItemUri); } DefaultActionPipeline.Run().WithParameters(new ItemSelectionContext(new TemplatedItemDescriptor(item.ItemUri, string.Empty, template.TemplateId, template.Name))); } else { var list = items.Select(i => i.ItemUri).ToList(); foreach (var o in parent.Items) { var item = o as ItemTreeViewItem; if (item == null) { continue; } if (list.Contains(item.Item.ItemUri)) { item.IsSelected = true; item.Focus(); } } AppHost.Windows.OpenContentEditor(items, LoadItemsOptions.Default); } foreach (var itemVersionUri in items) { Notifications.RaiseItemAdded(this, itemVersionUri, parent.ItemUri); } }