protected override void Process([NotNull] DuplicateItemPipeline pipeline) { Debug.ArgumentNotNull(pipeline, nameof(pipeline)); var parent = pipeline.TreeViewItem.Parent as BaseTreeViewItem; if (parent == null) { return; } if (pipeline.NewItemUri == ItemUri.Empty) { parent.Refresh(); } else if (!parent.HasChildren) { parent.Refresh(); foreach (var item in parent.Items) { var i = item as ItemTreeViewItem; if (i == null) { continue; } if (i.ItemUri == pipeline.NewItemUri) { i.IsSelected = true; Keyboard.Focus(i); break; } } } else { var itemHeader = pipeline.TreeViewItem.Item.Clone(); itemHeader.Name = pipeline.NewName; itemHeader.ItemUri = new ItemUri(new DatabaseUri(pipeline.NewItemUri.Site, pipeline.NewItemUri.DatabaseName), pipeline.NewItemUri.ItemId); var n = itemHeader.Path.LastIndexOf('/'); if (n >= 0) { itemHeader.Path = itemHeader.Path.Left(n + 1) + pipeline.NewName; } var item = new ItemTreeViewItem(itemHeader); if (pipeline.TreeViewItem.HasItems) { item.Add(DummyTreeViewItem.Instance); } parent.Add(item); item.IsSelected = true; Keyboard.Focus(item); } }
public ConfirmTransferDialog([NotNull] ItemTreeViewItem target, [NotNull] IEnumerable <IItem> items) { Assert.ArgumentNotNull(target, nameof(target)); Assert.ArgumentNotNull(items, nameof(items)); InitializeComponent(); this.InitializeDialog(); }
private ListBoxItem GetListBoxItem([NotNull] ItemTreeViewItem item) { Debug.ArgumentNotNull(item, nameof(item)); var valueItem = new ValueItem(item.Text, item.ItemUri.ItemId.ToString()); return(GetListBoxItem(valueItem)); }
public TransferItemsDialog([NotNull] ItemTreeViewItem target, [NotNull] IEnumerable <IItem> items) { Assert.ArgumentNotNull(target, nameof(target)); Assert.ArgumentNotNull(items, nameof(items)); InitializeComponent(); this.InitializeDialog(); Items = items; ItemDependencies.ItemsSource = items.Select(i => i.ItemUri); }
public static void GetSortOrder([NotNull] ItemTreeViewItem target, ControlDragAdornerPosition position, int itemCount, out int sortOrder, out int sortOrderDelta, [CanBeNull] out ItemTreeViewItem parent, [CanBeNull] out ItemTreeViewItem anchor) { Debug.ArgumentNotNull(target, nameof(target)); if (position == ControlDragAdornerPosition.Top) { GetBeforeSortOrder(target, itemCount, out sortOrder, out sortOrderDelta, out parent, out anchor); return; } GetAfterSortOrder(target, itemCount, out sortOrder, out sortOrderDelta, out parent, out anchor); }
public static void RaiseItemTreeViewDrop([NotNull] object sender, [NotNull] ItemTreeViewItem item, [NotNull] DragEventArgs args) { Assert.ArgumentNotNull(sender, nameof(sender)); Assert.ArgumentNotNull(item, nameof(item)); Assert.ArgumentNotNull(args, nameof(args)); var drop = ItemTreeViewDrop; if (drop != null) { drop(sender, item, args); } }
public DragCopyPipeline WithParameters([NotNull] ItemTreeViewItem target, [NotNull] IEnumerable <IItem> items, ControlDragAdornerPosition position, DragDropKeyStates keyStates) { Assert.ArgumentNotNull(target, nameof(target)); Assert.ArgumentNotNull(items, nameof(items)); KeyStates = keyStates; Target = target; Items = items; Position = position; Start(); return(this); }
public override void Execute(object parameter) { var context = parameter as GutterContext; if (context == null) { return; } var itemList = new StringBuilder(); ItemTreeViewItem first = null; foreach (var itemTreeViewItem in context.SelectedItems.OfType <ItemTreeViewItem>()) { if (first == null) { first = itemTreeViewItem; } else { itemList.Append('|'); } itemList.Append(itemTreeViewItem.ItemUri.ItemId); } if (first == null) { return; } ExecuteCompleted completed = delegate(string response, ExecuteResult result) { if (!DataService.HandleExecute(response, result)) { return; } foreach (var item in context.SelectedItems.OfType <ItemTreeViewItem>()) { item.UpdateGutters(); } }; first.ItemUri.Site.DataService.ExecuteAsync("Security.Unlock", completed, first.ItemUri.DatabaseName.Name, itemList.ToString()); }
public TransferDialog([NotNull] ItemTreeViewItem target, [NotNull] IEnumerable <IItem> items, bool deep, bool changeIds) { Assert.ArgumentNotNull(target, nameof(target)); Assert.ArgumentNotNull(items, nameof(items)); InitializeComponent(); this.InitializeDialog(); Target = target; Items = items; Deep = deep; ChangeIds = changeIds; Index = 0; ProgressBar.Maximum = items.Count(); Loaded += ControlLoaded; }
protected override bool CanExecute(ItemTreeViewItem item) { Debug.ArgumentNotNull(item, nameof(item)); var path = item.GetPath(); if (string.Compare(path, "/sitecore/media library", StringComparison.InvariantCultureIgnoreCase) == 0) { return(true); } if (path.StartsWith("/sitecore/media library/", StringComparison.InvariantCultureIgnoreCase)) { return(true); } return(false); }
public void SetField(Field sourceField) { Assert.ArgumentNotNull(sourceField, nameof(sourceField)); Source.Items.Clear(); Resizer.FieldId = sourceField.FieldUris.First().FieldId; DatabaseUri = sourceField.FieldUris.First().ItemVersionUri.DatabaseUri; FieldSource = sourceField.Source; initialItems = sourceField.ValueItems; var fieldSource = new UrlString(FieldSource ?? string.Empty); ExcludeItemsForDisplay = fieldSource["excludeitemsfordisplay"] ?? string.Empty; ExcludeTemplatesForDisplay = fieldSource["excludetemplatesfordisplay"] ?? string.Empty; ExcludeTemplatesForSelection = fieldSource["excludetemplatesforselection"] ?? string.Empty; IncludeItemsForDisplay = fieldSource["includeitemsfordisplay"] ?? string.Empty; IncludeTemplatesForDisplay = fieldSource["includetemplatesfordisplay"] ?? string.Empty; IncludeTemplatesForSelection = fieldSource["includetemplatesforselection"] ?? string.Empty; excludeItemsForDisplayList = ',' + ExcludeItemsForDisplay.ToLowerInvariant() + ","; excludeTemplatesForDisplayList = ',' + ExcludeTemplatesForDisplay.ToLowerInvariant() + ","; excludeTemplatesForSelectionList = ',' + ExcludeTemplatesForSelection.ToLowerInvariant() + ","; includeItemsForDisplayList = ',' + IncludeItemsForDisplay.ToLowerInvariant() + ","; includeTemplatesForDisplayList = ',' + IncludeTemplatesForDisplay.ToLowerInvariant() + ","; includeTemplatesForSelectionList = ',' + IncludeTemplatesForSelection.ToLowerInvariant() + ","; if (sourceField.Root == null) { return; } var itemTreeViewItem = new ItemTreeViewItem(sourceField.Root); Source.Items.Add(itemTreeViewItem); if (sourceField.Root.HasChildren) { itemTreeViewItem.MakeExpandable(); } }
protected override int GetSortOrder(ItemTreeViewItem item) { Debug.ArgumentNotNull(item, nameof(item)); var parent = item.GetParentTreeViewItem(); if (parent == null) { return(item.Item.SortOrder); } var last = parent.Items[parent.Items.Count - 1] as ItemTreeViewItem; if (last == null) { return(item.Item.SortOrder); } return(last.Item.SortOrder + 100); }
protected override int GetSortOrder(ItemTreeViewItem item) { Debug.ArgumentNotNull(item, nameof(item)); var parent = item.GetParentTreeViewItem(); if (parent == null) { return(item.Item.SortOrder); } var index = parent.Items.IndexOf(item); if (index <= 0) { return(item.Item.SortOrder); } var previous = parent.Items[index - 1] as ItemTreeViewItem; if (previous == null) { return(item.Item.SortOrder); } if (index == 1) { return(previous.Item.SortOrder - 100); } var previousPrevious = parent.Items[index - 2] as ItemTreeViewItem; if (previousPrevious == null) { return(item.Item.SortOrder); } return(previousPrevious.Item.SortOrder + (previous.Item.SortOrder - previousPrevious.Item.SortOrder) / 2); }
protected override int GetSortOrder(ItemTreeViewItem item) { Debug.ArgumentNotNull(item, nameof(item)); var parent = item.GetParentTreeViewItem(); if (parent == null) { return(item.Item.SortOrder); } var index = parent.Items.IndexOf(item); if (index < 0 || index == parent.Items.Count - 1) { return(item.Item.SortOrder); } var next = parent.Items[index + 1] as ItemTreeViewItem; if (next == null) { return(item.Item.SortOrder); } if (index == parent.Items.Count - 2) { return(next.Item.SortOrder + 100); } var nextNext = parent.Items[index + 2] as ItemTreeViewItem; if (nextNext == null) { return(item.Item.SortOrder); } return(next.Item.SortOrder + (nextNext.Item.SortOrder - next.Item.SortOrder) / 2); }
private static void DragOver([NotNull] object sender, [NotNull] ItemTreeViewItem item, [NotNull] DragEventArgs args) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(item, nameof(item)); Debug.ArgumentNotNull(args, nameof(args)); if (!args.Data.GetDataPresent(@"CF_VSSTGPROJECTITEMS")) { return; } args.Effects = DragDropEffects.None; if ((item.ItemUri.Site.DataService.FeatureCapabilities & DataServiceFeatureCapabilities.Execute) != DataServiceFeatureCapabilities.Execute) { return; } var fileName = args.Data.GetData(@"Text") as string ?? string.Empty; try { if (!File.Exists(fileName)) { return; } } catch { return; } var fileItemHandler = FileItemManager.GetFileItemHandler(fileName); if (fileItemHandler == null) { return; } Project project = null; string relativeFileName = null; foreach (var proj in ProjectManager.Projects) { relativeFileName = proj.GetRelativeFileName(fileName); if (relativeFileName == fileName) { continue; } project = proj; break; } if (project == null) { return; } if (project.Site != item.ItemUri.Site) { return; } var projectItem = project.GetProjectItem(relativeFileName); if (projectItem != null) { return; } args.Effects = DragDropEffects.Copy; }
public ItemTreeViewItemSelectedObject([NotNull] ItemTreeViewItem item) : base(item.Item.ItemUri.DatabaseUri) { Assert.ArgumentNotNull(item, nameof(item)); Item = item; }
protected virtual bool CanExecute([NotNull] ItemTreeViewItem item) { Debug.ArgumentNotNull(item, nameof(item)); return(true); }
private static void GetAfterSortOrder([NotNull] ItemTreeViewItem target, int itemCount, out int sortOrder, out int sortOrderDelta, [CanBeNull] out ItemTreeViewItem parent, [CanBeNull] out ItemTreeViewItem anchor) { Debug.ArgumentNotNull(target, nameof(target)); sortOrder = target.Item.SortOrder; parent = null; anchor = null; var itemsControl = target.GetParentTreeViewItem(); if (itemsControl == null) { sortOrder += 100; sortOrderDelta = 100; return; } parent = itemsControl as ItemTreeViewItem; if (parent == null) { sortOrder -= itemCount * 100; sortOrderDelta = 100; return; } var index = itemsControl.Items.IndexOf(target); if (index < 0 || index == itemsControl.Items.Count - 1) { sortOrder += 100; sortOrderDelta = 100; return; } var nextItem = itemsControl.Items[index + 1] as ItemTreeViewItem; if (nextItem == null) { sortOrder += 100; sortOrderDelta = 100; return; } anchor = nextItem; var nextSortOrder = nextItem.Item.SortOrder; if (nextSortOrder == sortOrder) { var sort = 0; var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Appearance/Appearance/__Sortorder"); for (var i = 0; i < parent.Items.Count; i++) { var item = parent.Items[i] as ItemTreeViewItem; if (item != null) { ItemModifier.Edit(item.Item.ItemUri, fieldId, sort.ToString()); item.Item.SortOrder = sort; } sort += i == index ? (itemCount + 1) * 100 : 100; } sortOrder = index * 100; nextSortOrder = sortOrder + (itemCount + 1) * 100; } var gap = nextSortOrder - sortOrder; sortOrderDelta = gap / (itemCount + 1); if (sortOrderDelta == 0) { sortOrder = sortOrder + (int)Math.Floor((double)gap / 2); return; } sortOrder += sortOrderDelta; }
private static void Drop([NotNull] object sender, [NotNull] ItemTreeViewItem item, [NotNull] DragEventArgs args) { Debug.ArgumentNotNull(sender, nameof(sender)); Debug.ArgumentNotNull(item, nameof(item)); Debug.ArgumentNotNull(args, nameof(args)); if (!args.Data.GetDataPresent(@"CF_VSSTGPROJECTITEMS")) { return; } var fileName = args.Data.GetData(@"Text") as string ?? string.Empty; try { if (!File.Exists(fileName)) { return; } } catch { return; } var fileItemHandler = FileItemManager.GetFileItemHandler(fileName); if (fileItemHandler == null) { return; } Project project = null; string relativeFileName = null; foreach (var proj in ProjectManager.Projects) { relativeFileName = proj.GetRelativeFileName(fileName); if (relativeFileName == fileName) { continue; } if (proj.Site != item.ItemUri.Site) { continue; } project = proj; break; } if (project == null) { return; } var projectItem = project.GetProjectItem(relativeFileName) as ProjectFileItem; if (projectItem != null) { if (projectItem.Items.Any()) { return; } } projectItem = ProjectFileItem.Load(project, fileName); project.Add(projectItem); project.Save(); var itemPath = Path.Combine(item.GetPath(), Path.GetFileNameWithoutExtension(fileName) ?? string.Empty); fileItemHandler.Handle(item.ItemUri.DatabaseName, projectItem, itemPath, (s, e) => item.Refresh()); }
protected abstract int GetSortOrder([NotNull] ItemTreeViewItem item);