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());
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }