/// <summary> /// Создаение элемента с ссылкой на вершину типа Node /// </summary> /// <param name="x1">x1</param> /// <param name="y1">y1</param> /// <param name="x2">x2</param> /// <param name="y2">y2</param> /// <param name="node">Вершина</param> public Zone(float x1, float y1, float x2, float y2, FPBTreeNode.Node node) { this.X1 = x1; this.X2 = x2; this.Y1 = y1; this.Y2 = y2; this.Node = node; this.isNode = true; }
/// <summary> /// Создаение элемента с ссылкой на вершину типа InPageNode /// </summary> /// <param name="x1">x1</param> /// <param name="y1">y1</param> /// <param name="x2">x2</param> /// <param name="y2">y2</param> /// <param name="node">Вершина</param> public Zone(float x1, float y1, float x2, float y2, FPBTreeNode.InPageNode node) { this.X1 = x1; this.X2 = x2; this.Y1 = y1; this.Y2 = y2; this.InPageNode = node; this.isNode = false; }
/// <summary> /// Обновление информации о выбранной InPage вершине в textBox /// </summary> /// <param name="node">Вершина</param> private void UpdateTB(FPBTreeNode.InPageNode node) { textBox2.Invoke(new Action(() => textBox2.Clear())); if (node.Tuple) { if (node.IsLeaf) { var first = "Вершина является листом, значения - ссылки на вершины"; var second = string.Format("Количество листьев: {0}", node.CurrentNumberOfKeys); var third = "Ключи в листе:"; string fourth = ""; for (var i = 0; i <= node.CurrentNumberOfKeys; ++i) fourth += node.LeafKeys[i] + " "; textBox2.Invoke(new Action(() => textBox2.Text += first + Environment.NewLine + second + Environment.NewLine + third + Environment.NewLine + fourth)); } else { var first = "Вершина не является листом, значения - ссылки на In-Page вершины"; var second = ""; if(node.NonLeafKeys[0]!=null&&node.CurrentNumberOfKeys==0) second = string.Format("Количество детей: 1"); else second = string.Format("Количество детей: {0}", node.CurrentNumberOfKeys); var third = "Ключи в вершине:"; string fourth = ""; for (var i = 0; i <= node.CurrentNumberOfKeys; ++i) fourth += node.NonLeafKeys[i] + " "; textBox2.Invoke(new Action(() => textBox2.Text += first + Environment.NewLine + second + Environment.NewLine + third + Environment.NewLine + fourth)); } } else { if (node.IsLeaf) { var first = "Вершина является листом, значения - данные в базе"; var second = string.Format("Количество листьев: {0}", node.CurrentNumberOfKeys); var third = "Ключи в листе:"; string fourth = ""; for (var i = 0; i < node.CurrentNumberOfKeys; ++i) fourth += node.LeafKeys[i] + " "; textBox2.Invoke(new Action(() => textBox2.Text += first + Environment.NewLine + second + Environment.NewLine + third + Environment.NewLine + fourth)); } else { var first = "Вершина не является листом, значения - ссылки на In-Page вершины"; var second = ""; if (node.NonLeafKeys[0] != null && node.CurrentNumberOfKeys == 0) second = string.Format("Количество детей: 1"); else second = string.Format("Количество детей: {0}", node.CurrentNumberOfKeys); var third = "Ключи в вершине:"; string fourth = ""; for (var i = 0; i <= node.CurrentNumberOfKeys; ++i) fourth += node.NonLeafKeys[i] + " "; textBox2.Invoke(new Action(() => textBox2.Text += first + Environment.NewLine + second + Environment.NewLine + third + Environment.NewLine + fourth)); } } }