示例#1
0
 public TreeNode(core.Key key, core.Table tableRef)
 {
     this.TableKey = key;
     this.TableRef = tableRef;
     this.Name     = key.ShortName;
     children      = new LinkedList <TreeNode>();
 }
示例#2
0
        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());
                }
            }
        }
示例#3
0
        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);
        }
示例#4
0
 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);
     }
 }
示例#5
0
        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);
            }
        }
示例#6
0
        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);
        }
示例#7
0
 protected void SetTableRaw(core.Table table)
 {
     if (selected == null)
     {
         clearModel();
     }
     else
     {
         NormalTable tabe = selected.Normalize(project);
         modelTree(project, selected, tabe);
         displayTreeModel(selected, tabe, viewModel);
     }
 }
示例#8
0
        public void SetTable(string name)
        {
            selected = project.GetTable(name);

            SetTableRaw(selected);
        }