Пример #1
0
        private void AddGroup(string groupname, string groupIdentify)
        {
            BlockItemGroup group = new BlockItemGroup(groupname, "", groupIdentify);

            _groups.Add(group);
            AddGroupToTree(group);
        }
Пример #2
0
        private void LoadUserDefinedRegion()
        {
            _groups = new List <BlockItemGroup>();
            _tree.Nodes.Clear();
            DefinedRegionParse p = new DefinedRegionParse();

            _blockRef = p.BlockDefined;
            BlockItemGroup[] blockGroup = _blockRef.UserDefineRegion;
            if (blockGroup == null || blockGroup.Length == 0)
            {
                return;
            }
            for (int i = 0; i < blockGroup.Length; i++)
            {
                BlockItemGroup group = blockGroup[i];
                _groups.Add(group);
                AddGroupToTree(group);
            }
            if (_tree.Nodes.Count > 0)
            {
                _tree.SelectedNode = _tree.Nodes[_tree.Nodes.Count - 1];
                _tree.SelectedNode.ExpandAll();
            }
            //_tree.ExpandAll();
        }
Пример #3
0
        private void btnAddRegion_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            string      name     = textBox1.Text;
            string      identify = txtIdentify.Text;
            PrjEnvelope env      = GetEnvelopeFromUI();

            if (string.IsNullOrWhiteSpace(name))
            {
                errorProvider1.SetError(textBox1, "名字不能为空");
                return;
            }
            if (env.IsEmpty || env.Width <= 0 || env.Height <= 0)
            {
                errorProvider1.SetError(radCenter, "范围不合法,不能为空或零");
                return;
            }
            if (env.MinX < -180d)
            {
                errorProvider1.SetError(radCenter, "范围不合法,最小经度不能小于-180");
                return;
            }
            if (env.MaxX > 180d)
            {
                errorProvider1.SetError(radCenter, "范围不合法,最大经度不能大于180");
                return;
            }
            if (env.MinY < -90d)
            {
                errorProvider1.SetError(radCenter, "范围不合法,最小纬度不能小于-90");
                return;
            }
            if (env.MaxY > 90d)
            {
                errorProvider1.SetError(radCenter, "范围不合法,最大纬度不能大于90");
                return;
            }
            BlockItemGroup group = GetSelectedGroup();

            if (group == null)
            {
                errorProvider1.SetError(panel1, "请选择或者添加一个分组");
                return;
            }
            if (group.GetPrjEnvelopeItem(identify) != null)
            {
                errorProvider1.SetError(textBox1, "标识不能重复");
                return;
            }
            PrjEnvelopeItem item = new PrjEnvelopeItem(name, env, identify);

            AddDefinedRegion(item);
        }
Пример #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="item">
 /// 要添加的group
 /// 如果此group的名字已经存在,则覆盖之前同名的group。
 /// </param>
 public void Add(BlockItemGroup item)
 {
     if (item == null || string.IsNullOrWhiteSpace(item.Name))
     {
         return;
     }
     if (ExistGroup(item.Name))
     {
         BlockItemGroup gp = FindGroup(item.Name);
         gp.BlockItems = item.BlockItems;
     }
     else
     {
         this._blockItemGroups.Add(item);
     }
 }
Пример #5
0
        private void AddGroupToTree(BlockItemGroup group)
        {
            RadTreeNode node = new RadTreeNode(group.ToString());

            node.Tag = group;
            PrjEnvelopeItem[] items = group.BlockItems;
            if (items.Length > 0)
            {
                foreach (PrjEnvelopeItem item in items)
                {
                    AddRegionToNode(node, item);
                }
            }
            _tree.Nodes.Add(node);
            _tree.SelectedNode = node;
        }
Пример #6
0
        void _tree_NodeCheckedChanged(object sender, RadTreeViewEventArgs e)
        {
            if (e.Node != m_SelectedNode)
            {
                return;
            }
            RadTreeNode           rootNode = null;
            BlockItemGroup        group    = null;
            RadTreeNodeCollection nodes    = null;

            if (e.Node.Level == 0)
            {
                rootNode = e.Node;
                group    = (e.Node.Tag as BlockItemGroup);
                nodes    = e.Node.Nodes;
            }
            else if (e.Node.Level == 1)
            {
                rootNode = e.Node.Parent;
                group    = (e.Node.Parent.Tag as BlockItemGroup);
                nodes    = e.Node.Parent.Nodes;
            }
            List <PrjEnvelopeItem> checkedNodes = new List <PrjEnvelopeItem>();
            int i = 0;

            foreach (RadTreeNode node in rootNode.Nodes)
            {
                if (node.Checked)
                {
                    checkedNodes.Add(node.Tag as PrjEnvelopeItem);
                    i++;
                }
            }
            BlockItemGroup bg = new BlockItemGroup(group.Name, group.Description, checkedNodes.ToArray());

            _blockDefinedSelected.Add(bg);
            rootNode.Text = string.Format("{0}[{1}]({3}/{2})", group.Name, group.Description, group.BlockItems.Length, i);
            if (CheckedChanged != null)
            {
                CheckedChanged(_blockDefinedSelected.GetPrjEnvelopeItems());
            }
        }
Пример #7
0
        private BlockItemGroup GetSelectedGroup()
        {
            RadTreeNode node = _tree.SelectedNode;

            if (node == null)
            {
                return(null);
            }
            if (node.Level == 0)
            {
                BlockItemGroup group = node.Tag as BlockItemGroup;
                return(group);
            }
            else if (node.Level == 1)
            {
                BlockItemGroup group = node.Parent.Tag as BlockItemGroup;
                return(group);
            }
            return(null);
        }
Пример #8
0
        private void AddDefinedRegion(PrjEnvelopeItem item)
        {
            RadTreeNode node = _tree.SelectedNode;

            if (node == null)
            {
                return;
            }
            if (node.Level == 0)
            {
                BlockItemGroup group = node.Tag as BlockItemGroup;
                group.Add(item);
                AddRegionToNode(node, item);
            }
            else if (node.Level == 1)
            {
                BlockItemGroup group = node.Parent.Tag as BlockItemGroup;
                group.Add(item);
                AddRegionToNode(node.Parent, item);
            }
        }
Пример #9
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            RadTreeNode node = _tree.SelectedNode;

            if (node == null)
            {
                return;
            }
            if (node.Level == 0)
            {
                _groups.Remove(node.Tag as BlockItemGroup);
                _tree.Nodes.Remove(node);
            }
            else if (node.Level == 1)
            {
                PrjEnvelopeItem item  = node.Tag as PrjEnvelopeItem;
                BlockItemGroup  group = node.Parent.Tag as BlockItemGroup;
                group.Remove(item);
                node.Parent.Nodes.Remove(node);
            }
        }