public void Setup() { _tv = new MultiSelectTreeView(); // ensure handle is created. Some tests fail if you don't do this. IntPtr h = _tv.Handle; }
public ObjectTree() { ImageList il = new ImageList(); il.ColorDepth = ColorDepth.Depth32Bit; il.Images.Add(Properties.Resources.document); il.Images.Add(Properties.Resources.topic); InnerTreeView = new MultiSelectTreeView(); InnerTreeView.ImageList = il; InnerTreeView.Dock = System.Windows.Forms.DockStyle.Fill; InnerTreeView.HideSelection = false; InnerTreeView.MultiSelect = true; InnerTreeView.ShowRootLines = false; InnerTreeView.BorderStyle = BorderStyle.None; InnerTreeView.BackColor = ContentBackColor; InnerTreeView.MouseUp += new MouseEventHandler(InnerTreeView_MouseUp); InnerTreeView.AfterSelect += new TreeViewEventHandler(InnerTreeView_AfterSelect); InnerTreeView.BeforeCollapse += new TreeViewCancelEventHandler(InnerTreeView_BeforeCollapse); LabCaption = new CaptionBar(); LabCaption.Dock = DockStyle.Top; LabCaption.Icon = Properties.Resources.objects; LabCaption.Size = new System.Drawing.Size(208, 16); LabCaption.Text = Lang._("Objects"); LabCaption.BackgroundStyle = CaptionStyle.BaseLine; LabCaption.BaseLineColor = Color.Silver; LabCaption.BackColor = ContentBackColor; Controls.Add(InnerTreeView); Controls.Add(LabCaption); //ImageList = il; }
public void Setup() { _tv = new MultiSelectTreeView(); // ensure handle is created. Some tests fail if you don't do this. Assert.NotNull(_tv.Handle); }
public void Initialize(MultiSelectTreeView treeView) { mTreeView = treeView; mMenuStrip = mTreeView.ContextMenuStrip; GumCommands.Self.GuiCommands.RefreshElementTreeView(); mTreeView.DragDrop += HandleDragDropEvent; mTreeView.ItemDrag += (sender, e) => { TreeNode node = e.Item as TreeNode; mTreeView.DoDragDrop(node, DragDropEffects.Move | DragDropEffects.Copy); }; mTreeView.DragEnter += (sender, e) => { e.Effect = DragDropEffects.All; }; mTreeView.DragOver += (sender, e) => { e.Effect = DragDropEffects.Move; }; InitializeMenuItems(); }
public void Initialize(MultiSelectTreeView treeView, ContextMenuStrip menuStrip) { if (treeView == null) { throw new ArgumentNullException(nameof(treeView)); } mMenuStrip = menuStrip; mTreeView = treeView; InitializeKeyboardShortcuts(treeView); mMenuStrip.Items.Clear(); var tsmi = new ToolStripMenuItem(); tsmi.Text = "Add State"; tsmi.Click += ((obj, arg) => { GumCommands.Self.Edit.AddState(); }); mMenuStrip.Items.Add(tsmi); tsmi = new ToolStripMenuItem(); tsmi.Text = "Add Category"; tsmi.Click += ((obj, arg) => { GumCommands.Self.Edit.AddCategory(); }); mMenuStrip.Items.Add(tsmi); }
public void Initialize(MultiSelectTreeView treeView, ContextMenuStrip menuStrip) { mMenuStrip = menuStrip; mTreeView = treeView; mMenuStrip.Items.Clear(); var tsmi = new ToolStripMenuItem(); tsmi.Text = "Add State"; tsmi.Click += ((obj, arg) => { GumCommands.Self.Edit.AddState(); }); mMenuStrip.Items.Add(tsmi); tsmi = new ToolStripMenuItem(); tsmi.Text = "Add Category"; tsmi.Click += ((obj, arg) => { GumCommands.Self.Edit.AddCategory(); }); mMenuStrip.Items.Add(tsmi); }
public void Initialize(MultiSelectTreeView treeView) { mTreeView = treeView; mMenuStrip = mTreeView.ContextMenuStrip; GumCommands.Self.GuiCommands.RefreshElementTreeView(); InitializeMenuItems(); }
public NodeTreeController(TreeView nodeTree) { _nodeTree = nodeTree; _multiTree = nodeTree as MultiSelectTreeView; InitializeIconRegistry(); ShowVirtualRoot = true; //_rootData = new TagCompoundDataNode(new TagNodeCompound()); _rootData = new RootDataNode(); RefreshRootNodes(); }
public override void OnApplyTemplate() { base.OnApplyTemplate(); if (treeObj != null) { return; } treeObj = this.tree; PostLoad(); }
private void OnPreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) { MultiSelectTreeView treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject); if (treeViewItem == null) { return; } treeViewItem.Focus(); //e.Handled = true; }
private bool FindFirstDownItemWithValidOverlap(MultiSelectTreeView rootTreeView, ItemsControl parentItemsControl, int startIndex, MultiSelectTreeViewItem draggingContainer, Rect draggingRect, ref Size overlapSize, ref Rect overlapContainerRect, ref MultiSelectTreeViewItem overlapContainer) { while (startIndex < parentItemsControl.Items.Count) { var downTreeViewItem = parentItemsControl.ItemContainerGenerator.ContainerFromIndex(startIndex++) as MultiSelectTreeViewItem; if (downTreeViewItem == null) { continue; } if (downTreeViewItem.HasItems && downTreeViewItem.IsExpanded //for move over the collapsed group //&& !(downTreeViewItem.DataContext as JOB_INFO).IsLocked //for IsLocked is false //&& draggingContainer.ContainDepth() + downTreeViewItem.InDepth() < LogicCenter.JobListMaxDepth //for tree depth && ItemsControl.ItemsControlFromItemContainer(draggingContainer) == parentItemsControl) //for move into first group { if (FindFirstDownItemWithValidOverlap(rootTreeView, downTreeViewItem, 0, draggingContainer, draggingRect, ref overlapSize, ref overlapContainerRect, ref overlapContainer)) { return(true); } } else { var downItemPos = downTreeViewItem.TranslatePoint(new Point(), rootTreeView); var downItemOverlapSize = GetOverlapSize(new Rect(downItemPos, new Point(downItemPos.X + downTreeViewItem.ActualWidth, downItemPos.Y + downTreeViewItem.ActualHeight)), draggingRect); if (downItemOverlapSize.IsEmpty || DoubleUtil.IsZero(downItemOverlapSize.Width) || DoubleUtil.IsZero(downItemOverlapSize.Height)) { continue; } overlapSize = downItemOverlapSize; overlapContainerRect = new Rect(downItemPos.X, downItemPos.Y, downTreeViewItem.ActualWidth, downTreeViewItem.ActualHeight); overlapContainer = downTreeViewItem; return(true); } } ; var superIC = ItemsControl.ItemsControlFromItemContainer(parentItemsControl); if (superIC == null) { return(false); } var topIndex = superIC.ItemContainerGenerator.IndexFromContainer(parentItemsControl); return(FindFirstDownItemWithValidOverlap(rootTreeView, superIC, topIndex + 1, draggingContainer, draggingRect, ref overlapSize, ref overlapContainerRect, ref overlapContainer)); }
public WorldRoot(String worldName, MultiSelectTreeView tree, WorldEditor worldEditor) { instance = this; name = worldName; treeView = tree; app = worldEditor; worldTerrain = new WorldTerrain(app); ocean = new Ocean(this, app); skybox = new Skybox(this, app); fog = new GlobalFog(this, app); ambientLight = new GlobalAmbientLight(this, app); directionalLight = new GlobalDirectionalLight(this, app); worldCollections = new List<WorldObjectCollection>(); pathObjectTypes = new PathObjectTypeContainer(this, app); }
public WorldRoot(String worldName, MultiSelectTreeView tree, WorldEditor worldEditor) { instance = this; name = worldName; treeView = tree; app = worldEditor; worldTerrain = new WorldTerrain(app); ocean = new Ocean(this, app); skybox = new Skybox(this, app); fog = new GlobalFog(this, app); ambientLight = new GlobalAmbientLight(this, app); directionalLight = new GlobalDirectionalLight(this, app); worldCollections = new List <WorldObjectCollection>(); pathObjectTypes = new PathObjectTypeContainer(this, app); }
public WorldRoot(XmlReader r, String worldFilename, MultiSelectTreeView tree, WorldEditor worldEditor, bool loadCollections) { instance = this; treeView = tree; app = worldEditor; worldFilePath = worldFilename; this.loadCollections = loadCollections; worldCollections = new List <WorldObjectCollection>(); if (loadCollections) { FromXml(r); } else { FromXml(r, loadCollections); } // if the XML doesn't have ocean in it, then add it here if (ocean == null) { ocean = new Ocean(this, app); } if (skybox == null) { skybox = new Skybox(this, app); } if (fog == null) { fog = new GlobalFog(this, app); } if (ambientLight == null) { ambientLight = new GlobalAmbientLight(this, app); } if (directionalLight == null) { directionalLight = new GlobalDirectionalLight(this, app); } if (pathObjectTypes == null) { pathObjectTypes = new PathObjectTypeContainer(this, app); } }
public static void treeView_MouseMove(object sender, MouseEventArgs e) { if (_isDragging && e.LeftButton == MouseButtonState.Released) { _isDragging = false; } MultiSelectTreeView treeView = sender as MultiSelectTreeView; if (treeView == null) { return; } if (!_isDragging && e.LeftButton == MouseButtonState.Pressed && treeView.SelectedItems.Count > 0) { if (!treeView.AllowDragDropState) { return; } var SelectedItems = treeView.SelectedItems; _isDragging = true; if (Mouse.Captured != treeView) { Mouse.Capture(treeView, CaptureMode.Element); } string[] paths = new string[SelectedItems.Count]; for (int i = 0; i < SelectedItems.Count && SelectedItems[i] as IconItem != null; i++) { paths[i] = Path.GetFullPath((SelectedItems[i] as IconItem).Path); } if (paths[0] != null) { DragDrop.DoDragDrop(treeView, new DataObject(DataFormats.FileDrop, paths), DragDropEffects.Link); } } }
public static T LastSelectedItem <T>(this MultiSelectTreeView treeview) => (T)treeview.LastSelectedItem;
private void InitializeKeyboardShortcuts(MultiSelectTreeView treeView) { treeView.KeyDown += HandleKeyDown; //treeView.KeyPress += HandleTreeViewKeyPressed; }
public WorldRoot(XmlReader r, String worldFilename, MultiSelectTreeView tree, WorldEditor worldEditor, bool loadCollections) { instance = this; treeView = tree; app = worldEditor; worldFilePath = worldFilename; this.loadCollections = loadCollections; worldCollections = new List<WorldObjectCollection>(); if (loadCollections) { FromXml(r); } else { FromXml(r, loadCollections); } // if the XML doesn't have ocean in it, then add it here if (ocean == null) { ocean = new Ocean(this, app); } if (skybox == null) { skybox = new Skybox(this, app); } if (fog == null) { fog = new GlobalFog(this, app); } if (ambientLight == null) { ambientLight = new GlobalAmbientLight(this, app); } if (directionalLight == null) { directionalLight = new GlobalDirectionalLight(this, app); } if (pathObjectTypes == null) { pathObjectTypes = new PathObjectTypeContainer(this, app); } }
void SelectNode(MultiSelectTreeView treeView) { string tempString1 = tabControl1.SelectedTab.Text; string tempString2 = ""; foreach (Control cl in tabControl1.SelectedTab.Controls) { if (cl is TabControl) { tempString2 = (cl as TabControl).SelectedTab.Text; break; } } CE_CW_BasicParameters accountingType = GlobalObject.GeneralFunction.StringConvertToEnum <CE_CW_BasicParameters>(tempString1 + "_" + tempString2); List <string> lstColName = new List <string>(); switch (accountingType) { case CE_CW_BasicParameters.核算_科目: dgvSubjects.DataSource = _serviceParametersSetting.GetTableInfo(accountingType.ToString(), treeView.SelectedNode.Tag.ToString()); lstColName.Add("科目代码"); SelectDataGridViewRow(treeView.SelectedNode, dgvSubjects, lstColName); dgvSubjects_CellClick(null, null); break; case CE_CW_BasicParameters.核算_用途: dgvPurpose.DataSource = _serviceParametersSetting.GetTableInfo(accountingType.ToString(), treeView.SelectedNode.Tag.ToString()); lstColName.Add("用途代码"); SelectDataGridViewRow(treeView.SelectedNode, dgvPurpose, lstColName); dgvPurpose_CellClick(null, null); break; case CE_CW_BasicParameters.核算_库房: break; case CE_CW_BasicParameters.核算_科目与用途关系: dgvSubjectsPurpose.DataSource = _serviceParametersSetting.GetTableInfo(accountingType.ToString(), treeView.SelectedNode.Tag.ToString()); lstColName.Add("用途代码"); lstColName.Add("科目代码"); SelectDataGridViewRow(treeView.SelectedNode, dgvSubjectsPurpose, lstColName); dgvSubjectsPurpose_CellClick(null, null); break; case CE_CW_BasicParameters.预算_科目: dgvBudgetProject.DataSource = _serviceParametersSetting.GetTableInfo(accountingType.ToString(), treeView.SelectedNode.Tag.ToString()); lstColName.Add("科目代码"); SelectDataGridViewRow(treeView.SelectedNode, dgvBudgetProject, lstColName); dgvBudgetProject_CellClick(null, null); break; default: break; } }
public static List <T> SelectedItems <T>(this MultiSelectTreeView treeview) => treeview.SelectedItems.Cast <T>().ToList();
public MultiSelectTreeViewAutomationPeer(MultiSelectTreeView owner) : base(owner) { }
private bool MoveDown(MultiSelectTreeView rootTreeView, Rect draggingRect, ref MultiSelectTreeViewItem draggingContainer, ref MultiSelectTreeViewItem lastOverlapContainer, ref DateTime startOverlapTime) { Size overlapSize = new Size(); Rect overlapItemRect = new Rect(); MultiSelectTreeViewItem overlapContainer = null; var sourceItemsControl = ItemsControl.ItemsControlFromItemContainer(draggingContainer); if (sourceItemsControl == null) { return(false); } var sourceCollection = sourceItemsControl.ItemsSource as IList <TestModel>; var sourceIndex = sourceItemsControl.ItemContainerGenerator.IndexFromContainer(draggingContainer); var sourceItem = sourceCollection[sourceIndex]; var sourcePos = draggingContainer.TranslatePoint(new Point(), rootTreeView); //从组中分离 if (IsFromGroup(sourceItemsControl) && sourceIndex == sourceItemsControl.Items.Count - 1 && DoubleUtil.GreaterThan(draggingRect.Y, sourcePos.Y + draggingContainer.ActualHeight / 2)) { //加入上层集合 var superItemsControl = ItemsControl.ItemsControlFromItemContainer(sourceItemsControl); var superCollection = superItemsControl.ItemsSource as IList <TestModel>; var superIndex = superItemsControl.ItemContainerGenerator.IndexFromContainer(sourceItemsControl); sourceCollection.RemoveAt(sourceIndex); if (superIndex + 1 < superItemsControl.Items.Count) { superCollection.Insert(superIndex + 1, sourceItem); draggingContainer = ContainerFromIndex(superItemsControl, superIndex + 1) as MultiSelectTreeViewItem; } else { superCollection.Add(sourceItem); draggingContainer = ContainerFromIndex(superItemsControl, superCollection.Count - 1) as MultiSelectTreeViewItem; } //原组若剩余一项,则将该项加入上层集合,移除组 if (sourceItemsControl.Items.Count == 1) { sourceItem = sourceCollection[0]; sourceCollection.RemoveAt(0); superCollection.Insert(superIndex + 1, sourceItem); superCollection.RemoveAt(superIndex); } lastOverlapContainer = null; return(true); } if (!FindFirstDownItemWithValidOverlap(rootTreeView, sourceItemsControl, sourceIndex + 1, draggingContainer, draggingRect, ref overlapSize, ref overlapItemRect, ref overlapContainer)) { return(false); } var targetItemsControl = ItemsControl.ItemsControlFromItemContainer(overlapContainer); var targetCollection = targetItemsControl.ItemsSource as IList <TestModel>; var targetIndex = targetItemsControl.ItemContainerGenerator.IndexFromContainer(overlapContainer); if (DoubleUtil.LessThan(draggingRect.Bottom, overlapItemRect.Y + overlapItemRect.Height / 2)) { //Do noting } else if (DoubleUtil.LessThan(draggingRect.Bottom, overlapItemRect.Y + overlapItemRect.Height * 3 / 4)) // 1/4 -> 3/4 height { //非同组,则加入 if (IsFromGroup(targetItemsControl) && targetItemsControl != sourceItemsControl) { sourceCollection.RemoveAt(sourceIndex); targetCollection.Insert(0, sourceItem); lastOverlapContainer = null; draggingContainer = ContainerFromIndex(targetItemsControl, 0) as MultiSelectTreeViewItem; } } else if (DoubleUtil.GreaterThan(draggingRect.Y, overlapItemRect.Y + overlapItemRect.Height / 4)) //Top -> 1/4 height 移动 { sourceCollection.RemoveAt(sourceIndex); targetCollection.Insert(targetIndex, sourceItem); lastOverlapContainer = null; draggingContainer = ContainerFromIndex(targetItemsControl, targetIndex) as MultiSelectTreeViewItem; } else //处理悬停,创建新组 { if (!DealHover( targetItemsControl, targetCollection, targetIndex, sourceCollection, sourceIndex, sourceItem, targetIndex - 1, overlapContainer, ref lastOverlapContainer, ref startOverlapTime)) { return(false); } } return(true); }