private void InsertOrdered(ProjectItem parent, ProjectItem item) { parent.AddChild(item); m_treeView.RemoveChild(parent, item, parent.Children.Count == 1); VirtualizingTreeViewItem treeViewItem = m_treeView.GetTreeViewItem(item); if (treeViewItem == null) { m_treeView.AddChild(parent, item); } ProjectItem[] orderedChildren = parent.Children.OrderBy(projectItem => projectItem.NameExt).ToArray(); int index = Array.IndexOf(orderedChildren, item); item.SetSiblingIndex(index); if (item.IsFolder) { if (index > 0) { object prevSibling = parent.Children[index - 1]; m_treeView.SetNextSibling(prevSibling, item); } else { if (parent.Children.Count > 1) { object nextSibling = parent.Children[1]; m_treeView.SetPrevSibling(nextSibling, item); } } } }
private void OnObjectDestroying(ExposeToEditor o) { GameObject parent = null; bool isLastChild = false; if (o.Parent != null) { parent = o.Parent.gameObject; isLastChild = (o.Parent.ChildCount - o.Parent.MarkedAsDestroyedChildCount) <= 1; //ChildCount is not yet decremented } m_treeView.RemoveChild(parent, o.gameObject, isLastChild); }
protected virtual void OnObjectDestroying(ExposeToEditor o) { ExposeToEditor parent = o.GetParent(); try { m_treeView.ItemsRemoved -= OnItemsRemoved; m_treeView.RemoveChild(parent, o); } finally { m_treeView.ItemsRemoved += OnItemsRemoved; } }
public virtual void RemoveProperty(RuntimeAnimationProperty propertyItem) { RuntimeAnimationProperty parent = propertyItem.Parent; m_propertiesTreeView.RemoveChild(propertyItem.Parent, propertyItem); if (parent != null && parent.Children != null && parent.Children.Count > 0) { parent.Children.Remove(propertyItem); if (parent.Children.Count == 0) { m_propertiesTreeView.RemoveChild(null, parent); } } }
private void OnDestroyProjectClick() { ProjectInfo selectedProject = (ProjectInfo)m_treeView.SelectedItem; PopupWindow.Show("Delete Project", "Delete " + selectedProject.Name + " project?", "Delete", args => { ProjectInfo[] projectInfo = m_treeView.Items.OfType <ProjectInfo>().ToArray(); int index = Array.IndexOf(projectInfo, selectedProject); m_project.DeleteProject(selectedProject.Name, (error, deletedProject) => { if (error.HasError) { PopupWindow.Show("Unable to delete project", error.ErrorText, "OK"); args.Cancel = true; return; } m_treeView.RemoveChild(null, selectedProject, projectInfo.Length == 1); if ((projectInfo.Length - 1) == index) { m_treeView.SelectedIndex = (index - 1); } else { m_treeView.SelectedIndex = index; } }); }, "Cancel"); }
private void OnItemDrop(object sender, ItemDropArgs e) { Editor.DragDrop.RaiseDrop(e.PointerEventData); if (!(e.DropTarget is AssetItem) && (e.DragItems == null || !e.DragItems.Contains(e.DropTarget))) { ProjectItem parent = (ProjectItem)e.DropTarget; foreach (ProjectItem item in e.DragItems) { if (item.Parent != parent) { m_listBox.RemoveChild(item.Parent, item, item.Parent.Children.Count == 1); parent.AddChild(item); } } } }
public virtual void Remove(ProjectItem[] items) { foreach (ProjectItem item in items) { if (m_folders != null && (m_folders.All(f => f.Children == null || !f.Children.Contains(item)))) { m_raiseItemDeletedEvent = false; try { m_listBox.RemoveChild(item.Parent, item); } finally { m_raiseItemDeletedEvent = true; } } } }
private void OnItemEndDrag(object sender, ItemArgs e) { Editor.DragDrop.RaiseDrop(e.PointerEventData); foreach (ProjectItem item in e.Items) { if (m_folders.All(f => f.Children == null || !f.Children.Contains(item))) { m_raiseItemDeletedEvent = false; try { m_listBox.RemoveChild(item.Parent, item); } finally { m_raiseItemDeletedEvent = true; } } } }
public void RemoveProjectItemsFromTree(ProjectItem[] projectItems) { for (int i = 0; i < projectItems.Length; ++i) { ProjectItem projectItem = projectItems[i]; if (projectItem.IsFolder) { m_treeView.RemoveChild(projectItem.Parent, projectItem); } } }
protected virtual void OnObjectDestroying(ExposeToEditor o) { try { m_treeView.ItemsRemoved -= OnItemsRemoved; if (IsFilterEmpty) { ExposeToEditor parent = o.GetParent(); m_treeView.RemoveChild(parent, o); } else { m_treeView.RemoveChild(null, o); } } finally { m_treeView.ItemsRemoved += OnItemsRemoved; } }
private void OnItemEndDrag(object sender, ItemArgs e) { Editor.DragDrop.RaiseDrop(e.PointerEventData); foreach (ProjectItem item in e.Items) { if (m_folders.All(f => f.Children == null || !f.Children.Contains(item))) { m_listBox.RemoveChild(item.Parent, item, item.Parent.Children.Count == 1); } } }
public void RemoveProjectItemsFromTree(ProjectItem[] projectItems) { for (int i = 0; i < projectItems.Length; ++i) { ProjectItem projectItem = projectItems[i]; if (projectItem.IsFolder) { bool isLastChild = projectItem.Parent == null || projectItem.Parent.Children.Where(p => p.IsFolder).Count() == 1; m_treeView.RemoveChild(projectItem.Parent, projectItem, isLastChild); } } }
private void OnItemDrop(object sender, ItemDropArgs e) { DragDrop.RaiseDrop(e.PointerEventData); ProjectItem parent = (ProjectItem)e.DropTarget; foreach (ProjectItem item in e.DragItems) { if (item.Parent != parent) { m_listBox.RemoveChild(item.Parent, item, item.Parent.Children.Count == 1); parent.AddChild(item); } } }
private void OnDestroyProjectClick() { ProjectInfo selectedProject = (ProjectInfo)m_treeView.SelectedItem; if (selectedProject == null) { return; } m_windowManager.Confirmation( m_localization.GetString("ID_RTEditor_ProjectsDialog_DeleteProject", "Delete Project"), string.Format(m_localization.GetString("ID_RTEditor_ProjectsDialog_AreYouSureDeleteProject", "Delete {0} project?"), selectedProject.Name), (sender, args) => { ProjectInfo[] projectInfo = m_treeView.Items.OfType <ProjectInfo>().ToArray(); int index = Array.IndexOf(projectInfo, selectedProject); Editor.IsBusy = true; m_project.DeleteProject(selectedProject.Name, (error, deletedProject) => { Editor.IsBusy = false; if (error.HasError) { m_windowManager.MessageBox("Unable to delete project", error.ErrorText); args.Cancel = true; return; } m_treeView.RemoveChild(null, selectedProject); if ((projectInfo.Length - 1) == index) { m_treeView.SelectedIndex = (index - 1); } else { m_treeView.SelectedIndex = index; } }); }, (sender, args) => { }, m_localization.GetString("ID_RTEditor_ProjectsDialog_Btn_Delete", "Delete"), m_localization.GetString("ID_RTEditor_ProjectsDialog_Btn_Cancel", "Cancel")); }
private void OnDestroyProjectClick() { ProjectInfo selectedProject = (ProjectInfo)m_treeView.SelectedItem; if (selectedProject == null) { return; } m_windowManager.Confirmation("Delete Project", "Delete " + selectedProject.Name + " project?", (sender, args) => { ProjectInfo[] projectInfo = m_treeView.Items.OfType <ProjectInfo>().ToArray(); int index = Array.IndexOf(projectInfo, selectedProject); Editor.IsBusy = true; m_project.DeleteProject(selectedProject.Name, (error, deletedProject) => { Editor.IsBusy = false; if (error.HasError) { m_windowManager.MessageBox("Unable to delete project", error.ErrorText); args.Cancel = true; return; } //m_treeView.RemoveChild(null, selectedProject, projectInfo.Length == 1); //m_treeView.Remove(selectedProject); m_treeView.RemoveChild(null, selectedProject); if ((projectInfo.Length - 1) == index) { m_treeView.SelectedIndex = (index - 1); } else { m_treeView.SelectedIndex = index; } }); }, (sender, args) => { }, "Delete", "Cancel"); }
private void OnPropertiesRemoved(object sender, ItemsRemovedArgs e) { m_propertiesTreeView.ItemsRemoved -= OnPropertiesRemoved; List <Tuple <int, RuntimeAnimationProperty> > removedProperties = new List <Tuple <int, RuntimeAnimationProperty> >(); HashSet <int> removedHs = new HashSet <int>(); foreach (RuntimeAnimationProperty item in e.Items) { if (item.Parent != null) { int row = IndexOf(item.Parent); if (!removedHs.Contains(row)) { removedHs.Add(row); removedProperties.Add(new Tuple <int, RuntimeAnimationProperty>(row, item.Parent)); m_propertiesTreeView.RemoveChild(null, item.Parent); for (int i = 0; i < item.Parent.Children.Count; ++i) { row = IndexOf(item.Parent.Children[i]); if (!removedHs.Contains(row)) { removedHs.Add(row); removedProperties.Add(new Tuple <int, RuntimeAnimationProperty>(row, item.Parent.Children[i])); } } } } else { int row = IndexOf(item); if (!removedHs.Contains(row)) { removedHs.Add(row); removedProperties.Add(new Tuple <int, RuntimeAnimationProperty>(row, item)); if (item.Children != null) { for (int i = 0; i < item.Children.Count; ++i) { row = IndexOf(item.Children[i]); if (!removedHs.Contains(row)) { removedHs.Add(row); removedProperties.Add(new Tuple <int, RuntimeAnimationProperty>(row, item.Children[i])); } } } } } } for (int i = 0; i < removedProperties.Count; ++i) { RuntimeAnimationProperty property = removedProperties[i].Item2; Unsubscribe(property); m_props.Remove(property); Clip.Remove(property); } if (m_propertiesTreeView.ItemsCount == 2) { m_props.Remove(m_emptyTop); m_propertiesTreeView.RemoveChild(null, m_emptyTop); removedProperties.Insert(0, new Tuple <int, RuntimeAnimationProperty>(0, m_emptyTop)); } IEnumerable <Tuple <int, RuntimeAnimationProperty> > orderedItems = removedProperties.OrderBy(t => t.Item1); if (PropertiesRemoved != null) { PropertiesRemoved(new ItemsArg { Items = orderedItems.Select(t => t.Item2).ToArray(), Rows = orderedItems.Select(t => t.Item1).ToArray() }); } m_propertiesTreeView.ItemsRemoved += OnPropertiesRemoved; }