public TreeNode(core.Key key, core.Table tableRef) { this.TableKey = key; this.TableRef = tableRef; this.Name = key.ShortName; children = new LinkedList <TreeNode>(); }
private void recursiveModel(Project project, NormalTable normal, core.Table currentTable, core.Key parentKey, string name, ICollection <TreeNode> children) { core.Key tableKey; if (parentKey == null) { tableKey = new core.Key(name); } else { tableKey = new core.Key(name, parentKey); } TreeNode node = new TreeNode(tableKey, currentTable); children.Add(node); if (currentTable.HasReference(name)) { string refName = currentTable.GetReference(name); core.Table refTable = project.GetTable(refName); foreach ((string namesub, double weight) in refTable) { recursiveModel(project, normal, refTable, tableKey, namesub, node.Children()); } } }
private Button CreatButtonForTable(core.Table table) { Button button = new Button(); button.Name = table.Name; button.Content = table.Name; button.Click += (obj, e) => { SetTable(button.Name); }; return(button); }
private void displayTreeModel(core.Table table, NormalTable normal, ICollection <TreeNode> nodes) { projectTree.Items.Clear(); foreach (TreeNode child in nodes) { TreeViewItem viewChild = displayTreeModelRecursive(project, normal, child); projectTree.Items.Add(viewChild); } }
private void modelTree(Project project, core.Table table, NormalTable normal) { clearModel(); ICollection <TreeNode> convert = viewModel; foreach ((string name, _) in table) { recursiveModel(project, normal, table, null, name, convert); } }
private TreeViewItem createTreeViewItem(string key, double raw, double normal, TreeNode node) { TreeViewItem treeViewItem = new TreeViewItem(); StackPanel stackPanel = new StackPanel(); stackPanel.Orientation = Orientation.Horizontal; treeViewItem.IsExpanded = true; TextBlock nameText = new TextBlock(); nameText.Text = key; nameText.Margin = new Thickness(0, 5, 10, 0); TextBox rawText = new TextBox(); rawText.Text = Convert.ToString(raw); rawText.Margin = new Thickness(0, 5, 10, 0); core.Table selTbale = selected; rawText.AcceptsReturn = false; rawText.AcceptsTab = false; rawText.KeyDown += (sender, e) => { if (e.Key == System.Windows.Input.Key.Enter || e.Key == System.Windows.Input.Key.Escape) { Keyboard.ClearFocus(); } }; rawText.LostKeyboardFocus += (sender, e) => { double value; if (double.TryParse(rawText.Text, out value)) { node.TableRef.AddKey(node.TableKey.ShortName, value); SetTableRaw(selTbale); } }; Label normalText = new Label(); normalText.Content = $"{normal:P4}"; normalText.Margin = new Thickness(20, 5, 10, 0); stackPanel.Children.Add(nameText); stackPanel.Children.Add(rawText); stackPanel.Children.Add(normalText); treeViewItem.Header = stackPanel; //treeViewItem.Items.Add( stackPanel); return(treeViewItem); }
protected void SetTableRaw(core.Table table) { if (selected == null) { clearModel(); } else { NormalTable tabe = selected.Normalize(project); modelTree(project, selected, tabe); displayTreeModel(selected, tabe, viewModel); } }
public void SetTable(string name) { selected = project.GetTable(name); SetTableRaw(selected); }