Esempio n. 1
0
        /// <summary>自定义表节点上的右键菜单</summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void contextMenuStrip2_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            LibTreeNode    curentNode   = (LibTreeNode)this.treeView1.SelectedNode;
            LibDefineTable currentDefTB = _ds.DefTables.FindFirst("ID", curentNode.NodeId);

            if (currentDefTB.TableStruct == null)
            {
                currentDefTB.TableStruct = new LibCollection <LibDataTableStruct>();
            }
            switch (e.ClickedItem.Name)
            {
            case "CreateTableStruct":    //新建表结构
                #region
                LibTreeNode tablestruc = new LibTreeNode();
                tablestruc.NodeId   = Guid.NewGuid().ToString();
                tablestruc.Name     = string.Format("{0}_TableStruct{1}", currentDefTB.TableName, currentDefTB.TableStruct.Count + 1);
                tablestruc.Text     = tablestruc.Name;
                tablestruc.NodeType = NodeType.TableStruct;
                curentNode.Nodes.Add(tablestruc);

                TBStructProperty tbstructP = new TBStructProperty(tablestruc.NodeId);
                tbstructP.Dock = DockStyle.Fill;
                this._tbStructPropertylst.Add(tbstructP);
                this.splitContainer1.Panel2.Controls.Add(tbstructP);


                LibDataTableStruct tbstruct = new LibDataTableStruct();
                tbstruct.ID          = tablestruc.NodeId;
                tbstruct.Name        = tablestruc.Name;
                tbstruct.DisplayName = tablestruc.Text;
                tbstruct.Ignore      = true;
                currentDefTB.TableStruct.Add(tbstruct);

                tbstructP.SetPropertyValue(tbstruct, tablestruc);
                #endregion
                break;
            }
        }
Esempio n. 2
0
        private void DataSourceControl_Load(object sender, EventArgs e)
        {
            _ds = ModelDesignProject.GetDataSourceById(_funNode.Name);
            //数据集节点
            LibTreeNode dsNode = new LibTreeNode();

            dsNode.Name     = _funNode.Name;
            dsNode.Text     = ReSourceManage.GetResource(NodeType.DefDataSet);
            dsNode.NodeType = NodeType.DefDataSet;

            if (_ds.DefTables == null)
            {
                _ds.DefTables = new LibCollection <LibDefineTable>();
                //自定义表节点
                #region
                LibTreeNode defTBNode = new LibTreeNode();
                defTBNode.NodeId   = Guid.NewGuid().ToString();
                defTBNode.Name     = string.Format("{0}", _funNode.Name);
                defTBNode.Text     = string.Format("{0}({1})", _funNode.Text, defTBNode.Name);
                defTBNode.NodeType = NodeType.DefindTable;
                dsNode.Nodes.Add(defTBNode);

                //this._defTBPropertylst = new List<DefTBProperty>();
                DefTBProperty deftbp = new DefTBProperty(defTBNode.NodeId);
                deftbp.Dock = DockStyle.Fill;
                this._defTBPropertylst.Add(deftbp);
                this.splitContainer1.Panel2.Controls.Add(deftbp);

                LibDefineTable definetb = new LibDefineTable();
                definetb.ID          = defTBNode.NodeId;
                definetb.TableName   = defTBNode.Name;
                definetb.DisplayName = defTBNode.Text;
                _ds.DefTables.Add(definetb);

                deftbp.SetPropertyValue(definetb, defTBNode);
                #endregion

                //数据结构表
                #region
                LibTreeNode tablestruc = new LibTreeNode();
                tablestruc.NodeId   = Guid.NewGuid().ToString();
                tablestruc.Name     = string.Format("{0}", _funNode.Name);
                tablestruc.Text     = string.Format("{0}-{1}", "数据表", _funNode.Name);
                tablestruc.NodeType = NodeType.TableStruct;
                defTBNode.Nodes.Add(tablestruc);

                //this._tbStructPropertylst = new List<TBStructProperty>();
                TBStructProperty tbstructP = new TBStructProperty(tablestruc.NodeId);
                tbstructP.Dock = DockStyle.Fill;
                this._tbStructPropertylst.Add(tbstructP);
                this.splitContainer1.Panel2.Controls.Add(tbstructP);


                LibDataTableStruct tbstruct = new LibDataTableStruct();
                tbstruct.ID          = tablestruc.NodeId;
                tbstruct.Name        = tablestruc.Name;
                tbstruct.DisplayName = tablestruc.Text;
                definetb.TableStruct = new LibCollection <LibDataTableStruct>();
                definetb.TableStruct.Add(tbstruct);

                tbstructP.SetPropertyValue(tbstruct, tablestruc);
                #endregion
            }
            else
            {
                LibTreeNode node         = null;
                LibTreeNode dtstructNode = null;
                LibTreeNode fieldNode    = null;
                foreach (LibDefineTable item in _ds.DefTables)
                {
                    node          = new LibTreeNode();
                    node.NodeId   = item.ID;
                    node.Name     = item.TableName;
                    node.Text     = string.Format("{0}({1})", item.DisplayName, item.TableName);
                    node.NodeType = NodeType.DefindTable;
                    dsNode.Nodes.Add(node);
                    if (item.TableStruct != null)
                    {
                        foreach (LibDataTableStruct dtstruct in item.TableStruct)
                        {
                            #region 添加表结构节点
                            dtstructNode          = new LibTreeNode();
                            dtstructNode.NodeId   = dtstruct.ID;
                            dtstructNode.Name     = dtstruct.Name;
                            dtstructNode.Text     = string.Format("{0}-{1}", "数据表", dtstruct.Name);
                            dtstructNode.NodeType = NodeType.TableStruct;
                            node.Nodes.Add(dtstructNode);
                            #endregion
                            if (dtstruct.Fields != null)
                            {
                                foreach (LibField field in dtstruct.Fields)
                                {
                                    #region 添加字段节点
                                    fieldNode          = new LibTreeNode();
                                    fieldNode.NodeId   = field.ID;
                                    fieldNode.Name     = field.Name;
                                    fieldNode.Text     = string.Format("{0}({1})", field.Name, field.DisplayName);
                                    fieldNode.NodeType = NodeType.Field;
                                    dtstructNode.Nodes.Add(fieldNode);
                                    #endregion
                                }
                            }
                        }
                    }
                }
            }
            this.treeView1.Nodes.Add(dsNode);
            this.treeView1.SelectedNode = dsNode;
        }
Esempio n. 3
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            LibTreeNode libnode = (LibTreeNode)e.Node;

            if (libnode == null)
            {
                return;
            }
            bool exists = false;

            switch (libnode.NodeType)
            {
            case NodeType.DefDataSet:
                if (this._dsProperty == null)
                {
                    _dsProperty = new DataSourceProperty();
                    this.splitContainer1.Panel2.Controls.Add(_dsProperty);
                }
                SetPanel2ControlsVisible(_dsProperty);

                _ds.DataSourceName = string.IsNullOrEmpty(_ds.DataSourceName) ? _funNode.Text : _ds.DataSourceName;
                _ds.Package        = string.IsNullOrEmpty(_ds.Package) ? _funNode.Package : _ds.Package;
                _dsProperty.SetPropertyValue(_ds, libnode);
                break;

            case NodeType.DefindTable:
                if (this._defTBPropertylst != null)
                {
                    foreach (DefTBProperty item in _defTBPropertylst)
                    {
                        if (string.Compare(item.Name, libnode.NodeId) == 0)
                        {
                            SetPanel2ControlsVisible(item);
                            exists = true;
                            break;
                        }
                    }
                    if (!exists)     //还未创建对应的控件
                    {
                        DefTBProperty deftbp = new DefTBProperty(libnode.NodeId);
                        deftbp.Dock = DockStyle.Fill;
                        this._defTBPropertylst.Add(deftbp);
                        this.splitContainer1.Panel2.Controls.Add(deftbp);
                        deftbp.SetPropertyValue(_ds.DefTables.FindFirst("ID", libnode.NodeId), libnode);

                        SetPanel2ControlsVisible(deftbp);
                    }
                }

                break;

            case NodeType.TableStruct:
                if (this._tbStructPropertylst != null)
                {
                    foreach (TBStructProperty item in _tbStructPropertylst)
                    {
                        if (string.Compare(item.Name, libnode.NodeId) == 0)
                        {
                            SetPanel2ControlsVisible(item);
                            exists = true;
                            break;
                        }
                    }
                    if (!exists)     //还未创建对应的控件
                    {
                        TBStructProperty tbstrucp = new TBStructProperty(libnode.NodeId);
                        tbstrucp.Dock = DockStyle.Fill;
                        this._tbStructPropertylst.Add(tbstrucp);
                        this.splitContainer1.Panel2.Controls.Add(tbstrucp);
                        LibDefineTable deftb = _ds.DefTables.FindFirst("ID", ((LibTreeNode)libnode.Parent).NodeId);
                        tbstrucp.SetPropertyValue(deftb.TableStruct.FindFirst("ID", libnode.NodeId), libnode);

                        SetPanel2ControlsVisible(tbstrucp);
                    }
                }
                break;

            case NodeType.Field:
                if (this._fieldPropertylst != null)
                {
                    foreach (DefFieldProperty item in _fieldPropertylst)
                    {
                        if (string.Compare(item.Name, libnode.NodeId) == 0)
                        {
                            SetPanel2ControlsVisible(item);
                            exists = true;
                            break;
                        }
                    }
                    if (!exists)     //还未创建对应的控件
                    {
                        DefFieldProperty fieldp = new DefFieldProperty(libnode.NodeId);
                        fieldp.Dock = DockStyle.Fill;
                        this._fieldPropertylst.Add(fieldp);
                        this.splitContainer1.Panel2.Controls.Add(fieldp);
                        LibDefineTable     deftb    = _ds.DefTables.FindFirst("ID", ((LibTreeNode)libnode.Parent.Parent).NodeId);
                        LibDataTableStruct dtstruct = deftb.TableStruct.FindFirst("ID", ((LibTreeNode)libnode.Parent).NodeId);
                        fieldp.SetPropertyValue(dtstruct.Fields.FindFirst("ID", libnode.NodeId), libnode);

                        SetPanel2ControlsVisible(fieldp);
                    }
                }
                break;
            }
        }