internal IBuildItem GetBuildItem(ShadowFileNode shadowFileNode) { var node = projectNode.NodeFromItemId(shadowFileNode.ItemId); var node_property = node.GetType().GetProperty("ItemNode", BindingFlags.Instance | BindingFlags.NonPublic); var itemNode = node_property.GetValue(node, new object[] { }); var build_item_property = itemNode.GetType().GetProperty("Item", BindingFlags.Instance | BindingFlags.Public); return(new BuildItemProxy(build_item_property.GetValue(itemNode, new object[] { }))); }
internal void SwapWith(ShadowFileNode target) { this.buildItem.SwapWith(target.buildItem); }
/// <summary> /// Moves a compile item in the compilation order list one position up or down /// </summary> /// <param name="n">item to move</param> /// <param name="dir">direction</param> private void MoveElement(TreeNode n, ShadowFileNode.Direction dir) { if (!CompileItems.Nodes.Contains(n)) return; // Calculate the node's new location int new_index = 0; switch (dir) { case ShadowFileNode.Direction.Up: if (n.Index <= 0) // already at the top - nowehere to go up return; new_index = n.Index - 1; break; case ShadowFileNode.Direction.Down: if (n.Index >= CompileItems.Nodes.Count - 1) // already at the bottom - nowehere to go down return; new_index = n.Index + 1; break; } if (OnPageUpdated != null) OnPageUpdated(this, EventArgs.Empty); ((Project.ShadowFileNode)n.Tag).SwapWith((Project.ShadowFileNode)CompileItems.Nodes[new_index].Tag); // Update the UI (the TreeView) CompileItems.Nodes.Remove(n); CompileItems.Nodes.Insert(new_index, n); CompileItems.SelectedNode = n; }