Example #1
0
        private void ObjNode_IsRightMouseDown(object sender, MouseButtonEventArgs e)
        {
            MetroExpander abc = e.Source as MetroExpander;

            Console.WriteLine("111" + (abc.obj_type as ObjNode).ObjName);
            MainWindow.StrNodeName = (abc.obj_type as ObjNode).ObjName;
        }
Example #2
0
        private void FormMain_Loaded(object sender, RoutedEventArgs e)
        {
            this.Title = this.Title.Replace("Finance", ConfigurationManager.AppSettings["copyright"]);

            menuTableMap.ForEach(menu => {
                StackPanel stackPanel = null;
                if (stackPanelMap.ContainsKey(MENU_LIST_PREFIX + menu.group))
                {
                    stackPanel = stackPanelMap[MENU_LIST_PREFIX + menu.group];
                }
                else
                {
                    stackPanel = MainMenuTab.FindName(MENU_LIST_PREFIX + menu.group) as StackPanel;
                    if (stackPanel != null)
                    {
                        stackPanelMap.Add(MENU_LIST_PREFIX + menu.group, stackPanel);
                    }
                }

                if (stackPanel != null)
                {
                    MetroExpander metroExpander = new MetroExpander();
                    metroExpander.Name          = menu.name;
                    metroExpander.Header        = menu.header;
                    MainMenuTab.RegisterName(menu.name, metroExpander);
                    stackPanel.Children.Add(metroExpander);
                }
            });

            foreach (var kv in stackPanelMap)
            {
                dalegateMenu(kv.Value);
            }
        }
Example #3
0
        /// <summary>
        /// 递归某个节点的所有孩子节点,并填入对象树容器中;
        /// </summary>
        public void TraverseChildren(MetroExpander Obj_Tree, StackPanel Lists, int depths)
        {
            Thickness margin = new Thickness();

            // 遍历所有对象树节点;
            foreach (var Obj_Node in SubObj_Lsit)
            {
                // 只有枝节点才能够加入对象树;
                if (Obj_Node is ObjTreeNode)
                {
                    // 新建一个对象树节点容器控件;
                    MetroExpander item = new MetroExpander();

                    // 判断孩子中是否还包含枝节点;
                    bool NotContainTree = true;
                    foreach (var isTree in Obj_Node.SubObj_Lsit)
                    {
                        if (isTree is ObjTreeNode)
                        {
                            NotContainTree = false;
                        }
                    }

                    // 将孩子没有枝节点的节点进行缩进处理;
                    if (NotContainTree)
                    {
                        margin.Left   = 35 + depths;
                        margin.Top    = 8;
                        margin.Bottom = 8;
                        item.Margin   = margin;
                    }
                    else
                    {
                        margin.Left   = 20 + depths;
                        margin.Top    = 8;
                        margin.Bottom = 8;
                        item.ARMargin = margin;
                    }

                    item.Header                = Obj_Node.ObjName;
                    item.SubExpender           = Lists;                 // 增加子容器,保存叶子节点;
                    item.obj_type              = Obj_Node;              // 将节点添加到容器控件中;
                    item.Click                += IsSelectedChanged;     // 点击事件;
                    item.MouseRightButtonDown += IsRightMouseDown;

                    Obj_Tree.Add(item);

                    // 递归孩子节点;
                    Obj_Node.TraverseChildren(item, Lists, depths + 15);
                }
            }
        }
Example #4
0
        MetroTabControl FindMetroTabControl(string menu)
        {
            MetroExpander me = MainMenuTab.FindName(menu) as MetroExpander;

            if (me == null)
            {
                return(null);
            }
            var name    = (me.Parent as FrameworkElement).Name;
            var tabName = name.Replace(MENU_LIST_PREFIX, SUB_TAB_PREFIX);

            return(MainMenuTab.FindName(tabName) as MetroTabControl);
        }
Example #5
0
        /// <summary>
        /// 点击枝节点时;
        /// 1、在右侧列表中更新叶子节点;
        /// 2、触发SNMP的GetNext查询;
        /// </summary>
        /// <param name="sender">对应的容器</param>
        /// <param name="e"></param>
        public override void ClickObjNode(object sender, EventArgs e)
        {
            Console.WriteLine("TreeNode Clicked!");

            MetroExpander items = sender as MetroExpander;

            // 清理掉之前填入的Children节点;
            items.SubExpender.Children.Clear();

            // 将叶子节点加入右侧容器;
            if ((items.obj_type as ObjNode).SubObj_Lsit != null)
            {
                foreach (var iter in (items.obj_type as ObjNode).SubObj_Lsit)
                {
                    // 子节点如果是枝节点跳过;
                    if (iter is ObjTreeNode)
                    {
                        continue;
                    }

                    // 初始化对应的内容,并加入到容器中;
                    MetroExpander subitems = new MetroExpander();
                    subitems.Header   = iter.ObjName;
                    subitems.Click   += iter.ClickObjNode;
                    subitems.obj_type = iter;
                    items.SubExpender.Children.Add(subitems);
                }
                // 该节点有对应的表可查;
                if (this.ObjTableName != @"/")
                {
                }
            }
            else
            {
                MetroExpander item = sender as MetroExpander;
                ObjNode       node = item.obj_type as ObjNode;

                Console.WriteLine("LeafNode Clicked!" + node.ObjName);
            }
        }
Example #6
0
        /// <summary>
        /// 当点击叶子节点时,会触发GetNext操作;
        /// 注意:基站GetNext不支持全节点查询,最大粒度为Get命令当中的节点数量;
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void ClickObjNode(object sender, EventArgs e)
        {
            MetroExpander               item       = sender as MetroExpander;
            ObjNode                     node       = item.obj_type as ObjNode;
            IReDataByTableEnglishName   ret        = new ReDataByTableEnglishName();
            Dictionary <string, string> GetNextRet = new Dictionary <string, string>();
            int IndexNum = 0;

            contentlist.Clear();
            GetNextResList.Clear();
            ObjParentOID = String.Empty;

            // 目前可以获取到节点对应的中文名以及对应的表名;
            Console.WriteLine("LeafNode Clicked!" + node.ObjName + "and TableName " + this.ObjTableName);

            //根据表名获取该表内所有MIB节点;
            nodeb.db.getDataByTableEnglishName(this.ObjTableName, out ret, nodeb.m_IPAddress.ToString());

            List <string> oidlist = new List <string>();             // 填写SNMP模块需要的OIDList;

            name_cn.Clear(); oid_cn.Clear(); oid_en.Clear();         // 每个节点都有自己的表数据结构;
            try
            {
                int.TryParse(ret.indexNum, out IndexNum);              // 获取这张表索引的个数;
                IndexCount   = int.Parse(ret.indexNum);
                LastColumn   = 0;                                      // 初始化判断整表是否读完的判断字段;
                ChildCount   = ret.childrenList.Count - IndexNum;
                ObjParentOID = ret.oid;                                // 将父节点OID赋值;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }



            // 遍历所有子节点,组SNMP的GetNext命令的一行OID集合;
            foreach (var iter in ret.childrenList)
            {
                oidlist.Clear();
                // 索引不参与查询,将所有其他孩子节点进行GetNext查询操作;
                if (int.Parse(iter.childNo) > IndexNum)
                {
                    // 如果不是真MIB,不参与查询;
                    if (iter.isMib != "1")
                    {
                        ChildCount--;
                        continue;
                    }

                    string temp = prev_oid + iter.childOid;
                    name_cn.Add(prev_oid + iter.childNameMib, iter.childNameCh);
                    oid_en.Add(prev_oid + iter.childOid, iter.childNameMib);
                    oid_cn.Add(prev_oid + iter.childOid, iter.childNameCh);
                    oidlist.Add(temp);

                    // 通过GetNext查询单个节点数据;
                    SnmpMessageV2c msg = new SnmpMessageV2c("public", nodeb.m_IPAddress.ToString());
                    msg.GetNextRequestWhenStop(new AsyncCallback(ReceiveResBySingleNode), new AsyncCallback(NotifyMainUpdateDataGrid), oidlist);
                }
                else
                {
                }

                // 如果是单个节点遍历,就只能在此处组DataGrid的VM类;
            }

            // 通过GetNext获取整表数据,后来发现基站不支持,如果基站支持后,在此处GetNext即可;
            //SnmpMessageV2c msg = new SnmpMessageV2c("public", nodeb.m_IPAddress.ToString());
            //msg.GetNextRequest(new AsyncCallback(ReceiveRes), oidlist);
        }