Ejemplo n.º 1
0
        private void GetDetailWordInfo()
        {
            _ClientInfo = new ClientInfo();
            Hashtable _MetaHash = new Hashtable();
            Hashtable _Detail   = new Hashtable();

            try
            {
                String _FKey     = base.GetQueryValue("FKey");
                String _ResxType = base.GetQueryValue("CultureType");

                ResxManagerInfo _ResxCtrl = new ResxManagerInfo();
                DataSet         _DS       = _ResxCtrl.GetDetailWordInfo(_FKey, _ResxType);
                _MetaHash.Add("DetailInfo", MetaDataInfo.GetListHashData(_DS));
                _ClientInfo.Status = true;
            }
            catch (Exception ex)
            {
                _ClientInfo.Status  = false;
                _ClientInfo.Message = "数据访问失败,请稍候再试!";
            }
            Hashtable _Hash = new Hashtable();

            _Hash.Add(CONST_COMMON.ClientInfo, _ClientInfo);
            _Hash.Add(CONST_COMMON.Meta, _MetaHash);
            String _Context = MetaDataInfo.GetClientMetaData <Hashtable>(_Hash);

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ContentType = "application/json";
            HttpContext.Current.Response.Write(_Context);
            HttpContext.Current.Response.End();
        }
        /// <summary>
        /// 将当前选中的表添加到xml里的metadata里去。
        /// </summary>
        /// <param name="xml"></param>
        /// <param name="_CurrentDataTable"></param>
        void AddTableToXml(XmlTemplate xml, List <MetaDataColumnInfo> _CurrentDataTable)
        {
            if (null == xml.MetaDataItem)
            {
                xml.MetaDataItem = new List <MetaDataInfo>();
            }
            var dt = _CurrentDataTable[0];

            var data = xml.MetaDataItem.Where(p => p.table_name.ToLower().Equals(dt.table_name.ToLower())).GetFirst <MetaDataInfo>();

            if (null != data)
            {
                return;
            }
            data = new MetaDataInfo();
            xml.MetaDataItem.Add(data);
            data.table_comment = dt.table_comment;
            data.table_name    = dt.table_name;
            data.table_type    = dt.table_type;
            data.Item          = _CurrentDataTable.CloneList <MetaDataColumnInfo>();
            int _count = data.Item.Count;

            for (int i = 0; i < _count; i++)
            {
                var child = data.Item[i];
                child.table_comment           = string.Empty;
                child.table_name              = string.Empty;
                child.table_type              = string.Empty;
                _CurrentDataTable[i].IsChoose = false;
            }
        }
Ejemplo n.º 3
0
        private IPocoClassGenerator GenerateModel(MetaDataInfo metaData)
        {
            var gen = PocoFactory.GeneratePoco(metaData, Setting);

            ClassList = gen.ClassList;
            return(gen);
        }
Ejemplo n.º 4
0
 internal Poco(MetaDataInfo metaData, PocoSetting setting)
 {
     _setting     = setting ?? new PocoSetting();
     MetaData     = metaData;
     SchemaErrors = new List <string>();
     EntitySets   = new List <IEdmEntitySet>();
 }
        void GetControlProperty(ControlInfo _CurrentControlInfo, PropertyInfoAttribute pia)
        {
            //-->哪个控件,哪个属性
            //PropertyInfoAttribute pia = v as PropertyInfoAttribute;
            if (null == pia)
            {
                return;
            }
            //-->得到选中的控件
            string controlName = string.Format("{0}|{1}", _CurrentControlInfo.Name, pia.Name);

            if (_DictResult.ContainsKey(controlName))
            {
                return;
            }
            string       dataType = "varchar";
            MetaDataInfo mdi      = this.IDesignFramework.GetMetaDataInfoByTableName(_CurrentControlInfo.MetaData);

            if (null == mdi)
            {
                var controlObj = _CurrentPageControl.FindName(_CurrentControlInfo.Name);
                if (null != controlObj)
                {
                    var pi = controlObj.GetType().GetProperty(pia.Name);
                    dataType = pi != null ? pi.PropertyType.FullName : dataType;
                }
            }
            else
            {
                MetaDataColumnInfo mdci = mdi.Item.Where(p => p.column_name.Equals(_CurrentControlInfo.ColumnName)).GetFirst <MetaDataColumnInfo>();
            }
            _DictResult.Add(controlName, dataType);
        }
Ejemplo n.º 6
0
 public O2P(PocoSetting?setting = null)
 {
     Setting   = setting ?? new PocoSetting();
     ClassList = new List <ClassTemplate>();
     MetaData  = new MetaDataInfo();
     CodeText  = "";
 }
Ejemplo n.º 7
0
    //=========================================================================
    public List <MetaDataInfo> Events(string TypeName)
    {
        List <MetaDataInfo> Names = new List <MetaDataInfo>();

        foreach (string FileName in Dlls(TypeName))
        {
            string DLLFileName = Configuration.RemoveMacros(FileName);
            string ClassName   = ProxyClassName(TypeName, DLLFileName);

            //Type T = GetProbeInfoAssembly().GetType("ModelFramework." + StringManip.CamelCase(TypeName));
            Type T = GetProbeInfoAssembly().GetType("ModelFramework." + ClassName);
            if (T != null)
            {
                foreach (EventInfo Event in T.GetEvents())
                {
                    string Description = "";
                    foreach (object Attribute in Event.GetCustomAttributes(false))
                    {
                        if (Attribute.ToString() != "Event")
                        {
                            Description = Attribute.ToString();
                        }
                    }
                    MetaDataInfo Info = new MetaDataInfo();
                    Info.Name        = Event.Name;
                    Info.Description = Description;
                    Names.Add(Info);
                }
            }
            else
            {
                //attempt to get these details from getDescription()
                String descr = "";
                descr = DLLProber.ProbeDLLForDescriptionXML(ClassName, DLLFileName);
                if (descr.Length > 0)
                {
                    TComponentDescrParser comp = new TComponentDescrParser(descr);
                    //need to read all the event information
                    String eventSDML = comp.firstEvent();
                    while (eventSDML.Length > 0)
                    {
                        //create an event attribute of this class
                        TCompEvent newEvent;
                        newEvent = new TCompEvent(eventSDML);
                        if (newEvent.sKind == "published")
                        {
                            MetaDataInfo Info = new MetaDataInfo();
                            Info.Name        = newEvent.Name;
                            Info.Description = newEvent.sDescr;
                            Names.Add(Info);
                        }
                        eventSDML = comp.nextEvent();
                    }
                }
            }
        }
        return(Names);
    }
        bool UpdateMetaDataInfo()
        {
            var fields = this.lboxFields.Tag as List <MetaDataColumnInfo>;

            if (null == fields || 0 == fields.Count)
            {
                Wrapper.ShowDialog("字符参数为空");
                return(false);
            }
            var          dt  = fields[0];
            MetaDataInfo mdi = new MetaDataInfo();

            //-->克隆出数据。
            mdi.Item          = fields.CloneList <MetaDataColumnInfo>();
            mdi.table_comment = dt.table_comment;
            mdi.table_name    = dt.table_name;
            mdi.table_type    = dt.table_type;
            foreach (var data in mdi.Item)
            {
                data.table_comment = string.Empty;
                data.table_name    = string.Empty;
                data.table_type    = string.Empty;
            }
            var xml = IDesignFramework.GetCurrentXmlTemplate();
            var ci  = IDesignFramework.GetControlInfoByControlName(this.CurrentSelectedControlName);

            if (null == ci)
            {
                Wrapper.ShowDialog("找不着控件信息。");
                return(false);
            }
            ci.MetaData   = ci.MetaData.IsNullOrEmpty() ? _TableName : ci.MetaData;
            ci.ColumnName = ci.ColumnName.IsNullOrEmpty() ? _SaveField : ci.ColumnName;

            ci.ControlDataSourceTableName = mdi.table_name;
            //-->判断tableName是否已经增加了
            MetaDataInfo old_mdi = IDesignFramework.GetMetaDataInfoByTableName(mdi.table_name);

            if (null == old_mdi)
            {
                xml.MetaDataItem.Add(mdi);
            }
            else
            {
                //-->判断列是否已经存在。
                foreach (var column in mdi.Item)
                {
                    var col = old_mdi.Item.Where(p => p.column_name.Equals(column.column_name)).GetFirst <MetaDataColumnInfo>();
                    if (null != col)
                    {
                        old_mdi.Item.Remove(col);
                    }
                    old_mdi.Item.Add(column);
                }
            }
            IDesignFramework.UpdateCurrentTemplate();
            return(true);
        }
Ejemplo n.º 9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="cmd">复合控件命令对象类</param>
 public void InitTitle(CtrlPlatformCommandInfo cmd)
 {
     _ControlInfo  = cmd.ControlInfo;
     _MetaDataInfo = cmd.MetaDataInfo;
     if (!_ControlInfo.Comment.IsNullOrEmpty())
     {
         this.TextContent = _ControlInfo.Comment;
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="cmd"></param>
 public void InitTitle(CtrlPlatformCommandInfo cmd)
 {
     _ControlInfo     = cmd.ControlInfo;
     _MetaDataInfo    = cmd.MetaDataInfo;
     this.TextContent = _ControlInfo.Comment;
     if (null == _MetaDataInfo || null == _MetaDataInfo.Item || 0 == _MetaDataInfo.Item.Count)
     {
         return;
     }
 }
Ejemplo n.º 11
0
 void BuildColumnTree(TreeViewItem parent, string tableName, MetaDataInfo columns)
 {
     foreach (var child in columns.Item)
     {
         TreeViewItem c_tvi = new TreeViewItem();
         c_tvi.Name   = string.Format("tvi_{0}_{1}", tableName, child.column_name);
         c_tvi.Header = string.Format("{0}", child.column_comment);
         c_tvi.Tag    = child;
         parent.Items.Add(c_tvi);
     }
 }
Ejemplo n.º 12
0
 /// <summary>
 /// 初始化标题
 /// </summary>
 /// <param name="cmd"></param>
 public virtual void InitTitle(CtrlPlatformCommandInfo cmd)
 {
     _ControlInfo     = cmd.ControlInfo;
     _MetaDataInfo    = cmd.MetaDataInfo;
     this.TextContent = _ControlInfo.Comment;
     if (null == _MetaDataInfo || null == _MetaDataInfo.Item || 0 == _MetaDataInfo.Item.Count)
     {
         return;
     }
     this.FieldLength = _MetaDataInfo.Item[0].character_maximum_length;
 }
Ejemplo n.º 13
0
 public static void setMetaDataAlias(MetaDataInfo metaData)
 {
     if (metaData.alias != null && metaData.rs.ContainsKey(metaData.alias) && metaData.rs[metaData.alias] != null)
     {
         Dictionary <string, string> langMap = metaData.rs[metaData.alias];
         string langName = getLangName(langMap);
         if (langName != null)
         {
             metaData.alias = langName;
         }
     }
 }
Ejemplo n.º 14
0
        private void CreateItem()
        {
            _ClientInfo         = new ClientInfo();
            _ClientInfo.Status  = true;
            _ClientInfo.Message = "adsfasd";
            Hashtable _Hash = new Hashtable();

            _Hash.Add(CONST_COMMON.ClientInfo, _ClientInfo);
            String _Context = MetaDataInfo.GetClientMetaData <Hashtable>(_Hash);

            Response.Write(_Context);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 初始化操作
        /// </summary>
        /// <param name="metaData">参数</param>
        public void InitLoad(CtrlPlatformCommandInfo metaData)
        {
            _InitLoadParameter = metaData;
            _MetaDataInfo      = metaData.MetaDataInfo;
            _ControlInfo       = metaData.ControlInfo;

            //-->调用子控件的 InitLoad方法
            InitChildControl(_MetaDataInfo);

            GetInitValue(ConstantCollection.COMPOSITE_CONTROL_INIT_LOAD);

            this._NotifyRuntimePage(ConstantCollection.COMPOSITE_CONTROL_INIT_LOAD);
        }
Ejemplo n.º 16
0
        private void LoadWaitWordInfo(String _CultureType)
        {
            _ClientInfo = new ClientInfo();
            Hashtable _MetaHash = new Hashtable();
            Hashtable _Detail   = new Hashtable();

            try
            {
                String _SysName     = base.GetQueryValue("SysName");
                String _strPage     = base.GetQueryValue("PageNum");
                String _strPageSize = base.GetQueryValue("PageSize");
                String _strTrans    = base.GetQueryValue("IsTrans");
                int    _Page        = 1;
                int    _PageSize    = 10;

                int.TryParse(_strPage, out _Page);
                int.TryParse(_strPageSize, out _PageSize);

                Boolean _IsTrans = true;
                if (String.IsNullOrEmpty(_strTrans) || _strTrans == "0")
                {
                    _IsTrans = false;
                }

                ResxManagerInfo _ResxCtrl = new ResxManagerInfo();
                DataSet         _DS       = null;


                _DS = _ResxCtrl.GetWaitWordInfo(_SysName, _Page, _PageSize, _CultureType, _IsTrans);

                _MetaHash.Add("WordInfo", MetaDataInfo.GetListHashData(_DS));
                _ClientInfo.Status = true;
            }
            catch (Exception ex)
            {
                _ClientInfo.Status  = false;
                _ClientInfo.Message = "数据访问失败,请稍候再试!";
            }
            Hashtable _Hash = new Hashtable();

            _Hash.Add(CONST_COMMON.ClientInfo, _ClientInfo);
            _Hash.Add(CONST_COMMON.Meta, _MetaHash);
            String _Context = MetaDataInfo.GetClientMetaData <Hashtable>(_Hash);

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ContentType = "application/json";
            HttpContext.Current.Response.Write(_Context);
            HttpContext.Current.Response.End();
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 输出参数
        /// </summary>
        /// <returns></returns>
        public CtrlPlatformCommandInfo OutputParameter()
        {
            var cmd  = new CtrlPlatformCommandInfo();
            var data = new MetaDataInfo();

            data.table_name = this._TableName;

            foreach (var child in this._Columns)
            {
                child.column_value = string.Format("{0}", this.xtn_Data.SelectedItem.GetPropertyValue(child.column_name.ToLower()));
            }
            data.Item        = this._Columns;
            cmd.MetaDataInfo = data;
            return(cmd);
        }
 void XtnSetDataGridConvertColumnDB_Loaded(object sender, RoutedEventArgs e)
 {
     _CurrentControlInfo = this.IDesignFramework.GetControlInfoByControlName(this.CurrentSelectedControlName);
     if (null == _CurrentControlInfo.Convert)
     {
         _CurrentControlInfo.Convert = new List <ColumnDBConvertInfo>();
     }
     _XmlTemplate         = this.IDesignFramework.GetCurrentXmlTemplate();
     _CurrentMetaDataInfo = this.IDesignFramework.GetMetaDataInfoByTableName(_CurrentControlInfo.MetaData);
     if (null == _CurrentMetaDataInfo)
     {
         Wrapper.ShowDialog("请先设置数据源。");
         return;
     }
     this.xtnDataGridHeader.ItemsSource = _CurrentMetaDataInfo.Item;
 }
Ejemplo n.º 19
0
        /// <summary>
        /// 初始化子控件
        /// </summary>
        /// <param name="_MetaDataInfo"></param>
        void InitChildControl(MetaDataInfo _MetaDataInfo)
        {
            List <String> _MegItem = new List <string>();

            foreach (var child in _MetaDataInfo.Item)
            {
                var controlName = string.Format("{0}_{1}", this.Name, child.column_name);
                var fe          = _IPageRuntime.FindControl(controlName);
                if (null == fe)
                {
                    _MegItem.Add(controlName);
                    continue;
                }
                if (!_DictControl.ContainsKey(controlName))
                {
                    _DictControl.Add(controlName, fe);
                }
                //-->判断是否是复件控件
                if (fe is ICompositeCtrl)
                {
                    var icc = fe as ICompositeCtrl;
                    var _newCtrlMetaData = new MetaDataInfo();
                    _newCtrlMetaData.table_type    = _MetaDataInfo.table_type;
                    _newCtrlMetaData.table_name    = _MetaDataInfo.table_name;
                    _newCtrlMetaData.table_comment = _MetaDataInfo.table_comment;
                    _newCtrlMetaData.Item          = new List <MetaDataColumnInfo>();
                    _newCtrlMetaData.Item.Add(child);

                    ControlInfo ci = new ControlInfo();
                    ci.Name        = fe.Name;
                    ci.ColumnName  = child.column_name;
                    ci.Comment     = child.column_comment;
                    ci.ControlType = ConstantCollection.COMPOSITE_CONTROL;
                    ci.Type        = fe.GetType().Name;
                    ci.MetaData    = _MetaDataInfo.table_name;

                    CtrlPlatformCommandInfo ctrlCmd = new CtrlPlatformCommandInfo();
                    ctrlCmd.ControlInfo  = ci;
                    ctrlCmd.MetaDataInfo = _newCtrlMetaData;
                    icc.InitLoad(ctrlCmd);
                }
            }
            if (0 != _MegItem.Count)
            {
                _IPageRuntime.AlertMessage(string.Format("有【{0}】控件在表单上没有找着\r\n{1}", _MegItem.Count, string.Join("\r\n", _MegItem)));
            }
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 输入参数
        /// </summary>
        /// <param name="cmd"></param>
        public void InputParameter(CtrlPlatformCommandInfo cmd)
        {
            if (null == cmd || null == cmd.MetaDataInfo || null == cmd.MetaDataInfo.Item || 0 == cmd.MetaDataInfo.Item.Count)
            {
                return;
            }
            var mdi = cmd.MetaDataInfo;

            foreach (var mdci in cmd.MetaDataInfo.Item)
            {
                string controlName = string.Format("{0}_{1}", this.Name, mdci.column_name);
                var    fe          = this._IPageRuntime.FindControl(controlName);

                //-->判断是否是复件控件
                if (fe is ICompositeCtrl)
                {
                    var icc     = fe as ICompositeCtrl;
                    var _newMdi = new MetaDataInfo();
                    _newMdi.table_type    = mdi.table_type;
                    _newMdi.table_name    = mdi.table_name;
                    _newMdi.table_comment = mdi.table_comment;
                    _newMdi.Item          = new List <MetaDataColumnInfo>();
                    _newMdi.Item.Add(mdci);

                    ControlInfo ci = new ControlInfo();
                    ci.Name        = fe.Name;
                    ci.ColumnName  = mdci.column_name;
                    ci.Comment     = mdci.column_comment;
                    ci.ControlType = ConstantCollection.COMPOSITE_CONTROL;
                    ci.Type        = fe.GetType().Name;
                    ci.MetaData    = mdi.table_name;

                    CtrlPlatformCommandInfo ctrlCmd = new CtrlPlatformCommandInfo();
                    ctrlCmd.ControlInfo  = ci;
                    ctrlCmd.MetaDataInfo = _newMdi;
                    icc.InputParameter(ctrlCmd);
                }
            }
            this._NotifyRuntimePage(ConstantCollection.COMPOSITE_CONTROL_INPUT_PARAMETER);
        }
Ejemplo n.º 21
0
        private void SaveResxInfo(String _CultureType)
        {
            _ClientInfo = new ClientInfo();
            try
            {
                String _SysName   = base.GetQueryValue("txtSysName");
                String _Key       = base.GetQueryValue("txtKey");
                String _txtWordCN = base.GetQueryValue("txtWordCN");
                String _txtWordTW = base.GetQueryValue("txtWordTW");
                String _txtWordEN = base.GetQueryValue("txtWordEN");

                _ClientInfo.Status = new ResxManagerInfo().AddResxInfo(_Key, _txtWordCN, _txtWordTW,
                                                                       _txtWordEN, "admin", _SysName, _CultureType);

                if (_ClientInfo.Status)
                {
                    _ClientInfo.Message = "数据保存成功!";
                }
                else
                {
                    _ClientInfo.Message = "数据保存失败,请稍候再试!";
                }
            }
            catch (Exception ex)
            {
                _ClientInfo.Status  = false;
                _ClientInfo.Message = "数据访问失败,请稍候再试!";
            }
            Hashtable _Hash = new Hashtable();

            _Hash.Add(CONST_COMMON.ClientInfo, _ClientInfo);
            String _Context = MetaDataInfo.GetClientMetaData <Hashtable>(_Hash);

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ContentType = "application/json";
            HttpContext.Current.Response.Write(_Context);
            HttpContext.Current.Response.End();
        }
Ejemplo n.º 22
0
        private void CheckItemInfo()
        {
            _ClientInfo = new ClientInfo();
            Hashtable _MetaHash = new Hashtable();
            Hashtable _Detail   = new Hashtable();

            String  _SysName = base.GetQueryValue("SysName");
            String  _Word    = base.GetQueryValue("Word").Trim();
            DataSet _DS      = new ResxManagerInfo().CheckItemInfo(_SysName, _Word);

            _MetaHash.Add("WordInfo", MetaDataInfo.GetListHashData(_DS));

            Hashtable _Hash = new Hashtable();

            _Hash.Add(CONST_COMMON.ClientInfo, _ClientInfo);
            _Hash.Add(CONST_COMMON.Meta, _MetaHash);
            String _Context = MetaDataInfo.GetClientMetaData <Hashtable>(_Hash);

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ContentType = "application/json";
            HttpContext.Current.Response.Write(_Context);
            HttpContext.Current.Response.End();
        }
Ejemplo n.º 23
0
        public void ImplicitConversionTest(string url, string version)
        {
            var o2p = new O2P()
                      .SetUrl(url)
                      .AddKeyAttribute()
                      .Generate("north.cs")
                      //.SaveCodeTo("north.cs")
                      .SaveMetaDataTo("metanorth.xml");

            //implicit conversion
            MetaDataInfo meta = o2p;


            //implicit conversion as string
            Console.WriteLine(o2p);
            Assert.IsTrue(MatchFileContent("north.cs", o2p));
            Assert.IsTrue(MatchFileContent("metanorth.xml", ((MetaDataInfo)o2p).MetaDataAsString));
            Assert.IsTrue(((string)o2p).Contains("public class Product"));

            if (meta.MediaType == Media.Http)
            {
                Assert.Greater(meta.ServiceHeader.Count, 1);
            }
            else
            {
                Assert.AreEqual(meta.ServiceHeader.Count, 0);
            }

            Assert.AreEqual(meta.MetaDataVersion, version);

            Assert.AreEqual(((MetaDataInfo)o2p).MetaDataVersion, version, "metadataversion");

            Console.WriteLine(meta.ServiceHeader.DicToString());

            //implicit conversion test
        }
        bool UpdateXml()
        {
            if (null == metadata_username)
            {
                Wrapper.ShowDialog("请选择要关联的用户名字段!");
                return(false);
            }
            if (null == metadata_password)
            {
                Wrapper.ShowDialog("请选择要关联的密码字段!");
                return(false);
            }

            var fields = xtnTableField.Fields;

            if (null == fields || 0 == fields.Count)
            {
                Wrapper.ShowDialog("字符参数为空");
                return(false);
            }
            var dt  = fields[0];
            var mdi = new MetaDataInfo();

            //-->克隆出数据。
            mdi.Item          = fields.CloneList <MetaDataColumnInfo>();
            mdi.table_comment = dt.table_comment;
            mdi.table_name    = dt.table_name;
            mdi.table_type    = dt.table_type;
            foreach (var data in mdi.Item)
            {
                data.table_comment = string.Empty;
                data.table_name    = string.Empty;
                data.table_type    = string.Empty;
            }
            var xml = IDesignFramework.GetCurrentXmlTemplate();
            var ci  = IDesignFramework.GetControlInfoByControlName(this.CurrentSelectedControlName);

            if (null == ci)
            {
                Wrapper.ShowDialog("找不着控件信息。");
                return(false);
            }

            ci.MetaData   = ci.MetaData.IsNullOrEmpty() ? _TableName : ci.MetaData;
            ci.ColumnName = string.Format("{0}|{1}", _UserField, _PasswordField);

            ci.ControlDataSourceTableName = mdi.table_name;
            //-->判断tableName是否已经增加了
            var old_mdi = IDesignFramework.GetMetaDataInfoByTableName(mdi.table_name);

            if (null == old_mdi)
            {
                xml.MetaDataItem.Add(mdi);
            }
            IDesignFramework.UpdateCurrentTemplate();

            string value = string.Format("{0}|{1}|{2}", this.xtnTableField.TableName, _UserField, _PasswordField);

            _EvaluationContent = new XElement("DataAssociated", value);

            return(true);
        }
Ejemplo n.º 25
0
 internal Poco(MetaDataInfo metaData, PocoSetting setting)
 {
     _setting = setting;
     MetaData = metaData;
 }
Ejemplo n.º 26
0
        void child_Closed(object sender, EventArgs e)
        {
            var child = (sender as XtnChildWindow);

            if (true != child.DialogResult)
            {
                return;
            }
            DBFramework dbf = child.GetControl as DBFramework;
            var         mdi = dbf.GetMetaDataInfo;

            if (null == mdi || 0 == mdi.Item.Count)
            {
                return;
            }
            //-->判断tableName是否已经增加了
            MetaDataInfo old_mdi = GetMetaDataInfoByTableName(mdi.table_name);

            if (null == old_mdi)
            {
                _XmlTemplate.MetaDataItem.Add(mdi);
            }
            //-->增加控件
            _XmlTemplate.BaseInfo.SerialNum++;
            int                         SerialNum   = _XmlTemplate.BaseInfo.SerialNum;
            double                      top         = 0;
            double                      left        = 30;
            double                      maxWidth    = 0;
            List <String>               columns     = new List <string>();
            List <FrameworkElement>     feItem      = new List <FrameworkElement>();
            Dictionary <String, String> dictTopLeft = new Dictionary <string, string>();

            MetaDataInfo ctrlMetaData = new MetaDataInfo();

            ctrlMetaData.table_name    = mdi.table_name;
            ctrlMetaData.table_comment = mdi.table_comment;
            ctrlMetaData.table_type    = mdi.table_type;

            foreach (var ctrl in mdi.Item)
            {
                if (!ctrl.IsChoose)
                {
                    continue;
                }
                ctrlMetaData.Item = new List <MetaDataColumnInfo>();
                ctrlMetaData.Item.Add(ctrl);
                var    fe          = Wrapper.CreateCtrl <FrameworkElement>(ctrl.control_type);
                string controlName = string.Format("Form{0}_{1}", SerialNum, ctrl.column_name);
                fe.Name = controlName;
                this.DesignPage.AddChild(fe, false);
                feItem.Add(fe);
                UpdateXaml(fe);
                UpdateXml(fe, ctrl.column_name, ctrl.column_comment, mdi.table_name, string.Format("Form{0}", SerialNum), ctrlMetaData);
                double _maxWidth = GetCharWidth(ctrl.column_comment, this.FontSize, this.FontFamily, this.FontWeight);
                maxWidth = _maxWidth > maxWidth ? _maxWidth : maxWidth;
                columns.Add(ctrl.column_name);
                //-->修改期坐标位置
                if ((top + 30 + fe.Height + 30) < DesignPage.ActualHeight)
                {
                    top += 30;
                }
                else
                {
                    top = 30;
                    if ((left + 190) < DesignPage.ActualWidth)
                    {
                        left += 190;
                    }
                }
                dictTopLeft.Add(controlName, string.Format("{0};{1}", top, left));
                fe.SetValue(Canvas.LeftProperty, left);
                fe.SetValue(Canvas.TopProperty, top);
            }
            foreach (var v in feItem)
            {
                if (v is ICompositeCtrl)
                {
                    (v as ICompositeCtrl).TitleWidth = (int)maxWidth + 1;
                    v.Width = (int)maxWidth + 100 + 1;
                    //-->修改xaml的位置坐标
                    string t_l       = dictTopLeft[v.Name];
                    string new_value = Wrapper.ModifyAttribute(_XamlTemplate.CanvasTemplate.Children[v.Name],
                                                               new KeyValuePair <String, Object>[] {
                        new KeyValuePair <String, Object>("Canvas.Top", t_l.Split(';')[0]),
                        new KeyValuePair <String, Object>("Canvas.Left", t_l.Split(';')[1]),
                        new KeyValuePair <String, Object>("Width", v.Width),
                        new KeyValuePair <String, Object>("TitleWidth", (int)maxWidth + 1),
                    });
                    _XamlTemplate.CanvasTemplate.Children[v.Name] = new_value;
                }
            }
            feItem.Clear();
            dictTopLeft.Clear();
            //-->创建一个虚拟控件
            ControlInfo ci = new ControlInfo();

            ci.Name           = string.Format("Form{0}", SerialNum);
            ci.ColumnName     = string.Join("|", columns);
            ci.MetaData       = mdi.table_name;
            ci.Comment        = mdi.table_comment;
            ci.ControlType    = ConstantCollection.FORM_PREFIX;
            ci.ParentCtrlName = "LayoutRoot";
            ci.Type           = ConstantCollection.FORM_PREFIX;//
            //ci.ControlDataSourceTableName = mdi.table_name;
            _XmlTemplate.ControlItem.Add(ci);

            this.Xaml_Template = _XamlTemplate.ParseXml().ToString();
            this.Xml_Template  = _XmlTemplate.ParseXml().ToString();

            UpdateControlTree();

            //-->释放窗体里的资源
            child.Closed -= child_Closed;
            child.Dispose();
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 更新xml文件内容
        /// </summary>
        /// <param name="ui"></param>
        /// <param name="columnName"></param>
        /// <param name="comment"></param>
        /// <param name="tableName"></param>
        /// <param name="parentCtrlName"></param>
        /// <param name="mdi"></param>
        void UpdateXml(FrameworkElement ui, string columnName, string comment, string tableName, string parentCtrlName, MetaDataInfo mdi)
        {
            ControlInfo ci = new ControlInfo();

            ci.Name       = ui.Name;
            ci.ColumnName = columnName;
            ci.MetaData   = tableName;
            ci.Comment    = comment;
            ci.Type       = ui.GetType().Name;
            if (!parentCtrlName.IsNullOrEmpty())
            {
                ci.ParentCtrlName = parentCtrlName;
            }
            if (ui is ICompositeCtrl)
            {
                //-->查找 metadata 里 row里的信息
                ci.ControlType = ConstantCollection.COMPOSITE_CONTROL;
                CtrlPlatformCommandInfo ctrlCmd = new CtrlPlatformCommandInfo();
                ctrlCmd.MetaDataInfo = mdi;
                ctrlCmd.ControlInfo  = ci;
                (ui as ICompositeCtrl).InitTitle(ctrlCmd);
            }
            _XmlTemplate.ControlItem.Add(ci);
        }
Ejemplo n.º 28
0
        void Xaml_LostFocus(string orgValue, string changeXaml)
        {
            if (changeXaml.IsNullOrEmpty() || changeXaml.Equals(orgValue))
            {
                return;
            }
            //-->判断控件是否可用。
            FrameworkElement fe = Wrapper.LoadXaml <FrameworkElement>(changeXaml);

            if (null == fe)
            {
                _XamlTemplate      = new XamlTemplate();
                this.Xaml_Template = _XamlTemplate.ParseXml().ToString();
                return;
            }
            XamlTemplate new_xamlTemplate = XamlTemplate.DecodeXml(changeXaml);

            //-->判断程序集是否有改变
            this._XamlTemplate.AssemblyCollection.AddRange(new_xamlTemplate.AssemblyCollection);

            XamlCanvasTemplate old_Xaml_CanvasTemplate = this._XamlTemplate.CanvasTemplate;

            //-->判断画布的大小,背景色是否不同
            foreach (var cp in new_xamlTemplate.CanvasTemplate.CanvasPropertyDict)
            {
                if (old_Xaml_CanvasTemplate.CanvasPropertyDict.ContainsKey(cp.Key))
                {
                    if (!old_Xaml_CanvasTemplate.CanvasPropertyDict[cp.Key].Equals(cp.Value))
                    {
                        //-->内容有改变
                        old_Xaml_CanvasTemplate.CanvasPropertyDict[cp.Key] = cp.Value;
                    }
                }
                else
                {
                    old_Xaml_CanvasTemplate.CanvasPropertyDict.Add(cp.Key, cp.Value);
                }
            }
            //-->判断控件
            foreach (var child in new_xamlTemplate.CanvasTemplate.Children)
            {
                FrameworkElement _news_ctrl = fe.FindName(child.Key) as FrameworkElement;
                ((fe as UserControl).Content as Panel).Children.Remove(_news_ctrl);
                if (old_Xaml_CanvasTemplate.Children.ContainsKey(child.Key))
                {
                    if (!old_Xaml_CanvasTemplate.Children[child.Key].Equals(child.Value))
                    {
                        //-->删除原来的控件
                        this.DesignPage.DeleteChilren(child.Key);
                        //-->2、增加新的控件
                        this.DesignPage.AddChild(_news_ctrl, !_IsOpenPage);
                        DesignPage.UpdateDesignRectangle(_news_ctrl);
                        old_Xaml_CanvasTemplate.Children[child.Key] = child.Value;
                    }
                    continue;
                }
                this.DesignPage.AddChild(_news_ctrl, !_IsOpenPage);
                old_Xaml_CanvasTemplate.Children.Add(child.Key, child.Value);
                //-->初始一下内容
                if (_news_ctrl is ICompositeCtrl)
                {
                    var ci = _IDesignFramework.GetControlInfoByControlName(_news_ctrl.Name);
                    if (null == ci)
                    {
                        continue;
                    }
                    //-->查找 metadata 里 row里的信息
                    var ctrlMetaData = _IDesignFramework.GetMetaDataInfoByTableName(ci.MetaData);
                    if (null == ctrlMetaData || null == ctrlMetaData.Item || 0 == ctrlMetaData.Item.Count)
                    {
                        continue;
                    }
                    //--> metaData Column
                    var colXml = ctrlMetaData.Item.Where(p => p.column_name.Equals(ci.ColumnName)).GetFirst <MetaDataColumnInfo>();
                    if (null == colXml)
                    {
                        continue;
                    }
                    var _newCtrlMetaData = new MetaDataInfo();
                    _newCtrlMetaData.table_type    = ctrlMetaData.table_type;
                    _newCtrlMetaData.table_name    = ctrlMetaData.table_name;
                    _newCtrlMetaData.table_comment = ctrlMetaData.table_comment;
                    _newCtrlMetaData.Item          = new List <MetaDataColumnInfo>();
                    _newCtrlMetaData.Item.Add(colXml);

                    CtrlPlatformCommandInfo ctrlCmd = new CtrlPlatformCommandInfo();
                    ctrlCmd.ControlInfo  = ci;
                    ctrlCmd.MetaDataInfo = _newCtrlMetaData;
                    (_news_ctrl as ICompositeCtrl).InitTitle(ctrlCmd);
                }
            }
            //-->如果是高、宽改变了,得修改xml文件信息
            this._XmlTemplate.BaseInfo.PageHeight = new_xamlTemplate.Height;
            this._XmlTemplate.BaseInfo.PageWidth  = new_xamlTemplate.Width;
            _XamlTemplate.Height = new_xamlTemplate.Height;
            _XamlTemplate.Width  = new_xamlTemplate.Width;
            Xml_Template         = _XmlTemplate.ParseXml().ToString();
            _XamlTemplate        = new_xamlTemplate;

            this.Xaml_Template = changeXaml;
            DesignPage.UpdatePropertyGrid();
        }
Ejemplo n.º 29
0
    //=========================================================================
    public List <MetaDataInfo> Variables(string TypeName)
    {
        List <MetaDataInfo> Names = new List <MetaDataInfo>();

        foreach (string FileName in Dlls(TypeName))
        {
            string DLLFileName = Configuration.RemoveMacros(FileName);
            string ClassName   = ProxyClassName(TypeName, DLLFileName);

            Type T = GetProbeInfoAssembly().GetType("ModelFramework." + ClassName);
            if (T != null)
            {
                foreach (PropertyInfo Property in T.GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public))
                {
                    string Description = "";
                    string Units       = "";
                    foreach (object Attribute in Property.GetCustomAttributes(false))
                    {
                        if (Attribute.GetType().Name == "Description")
                        {
                            Description = Attribute.ToString();
                        }
                        if (Attribute.GetType().Name == "Units")
                        {
                            Units = Attribute.ToString();
                        }
                    }
                    MetaDataInfo Info = new MetaDataInfo();
                    Info.Name        = Property.Name;
                    Info.Description = Description;
                    Info.Units       = Units;
                    Info.IsArray     = Property.PropertyType.IsArray;
                    Info.IsRecord    = (Property.GetType().IsValueType&& !Property.GetType().IsEnum&& !Property.GetType().IsPrimitive&& Property.GetType() != typeof(decimal));
                    Names.Add(Info);
                }
            }
            else
            {
                //attempt to get these details from getDescription()
                String descr = "";
                descr = DLLProber.ProbeDLLForDescriptionXML(ClassName, DLLFileName);
                if (descr.Length > 0)
                {
                    TComponentDescrParser comp = new TComponentDescrParser(descr);
                    //need to read all the properties information
                    String propertySDML = comp.firstProperty();
                    while (propertySDML.Length > 0)
                    {
                        //create a property attribute of this class
                        TCompProperty newProperty;
                        newProperty = new TCompProperty(propertySDML);
                        if ((newProperty.Name.ToLower() != STRSUBEVENT_ARRAY) &&
                            (newProperty.Name.ToLower() != STRPUBEVENT_ARRAY) &&
                            (newProperty.Name.ToLower() != STRDRIVER_ARRAY))
                        {
                            MetaDataInfo Info = new MetaDataInfo();
                            Info.Name        = newProperty.Name;
                            Info.Description = "Descr " + newProperty.sDescr;
                            Info.Units       = newProperty.InitValue.units();
                            Info.IsArray     = newProperty.InitValue.isArray();
                            Info.IsRecord    = newProperty.InitValue.isRecord();
                            Names.Add(Info);
                        }
                        propertySDML = comp.nextProperty();
                    }
                }
            }
        }
        return(Names);
    }
Ejemplo n.º 30
0
 //internal Poco(string metaData, string serviceUrl)
 //{
 //    MetaDataAsString = metaData;
 //    ServiceUrl = serviceUrl;
 //    //MetaDataVersion = Helper.GetMetadataVersion(metaData);
 //}
 internal Poco(MetaDataInfo metaData)
 {
     MetaData = metaData;
     
 }
Ejemplo n.º 31
0
 //internal Poco(string metaData, string serviceUrl)
 //{
 //    MetaDataAsString = metaData;
 //    ServiceUrl = serviceUrl;
 //    //MetaDataVersion = Helper.GetMetadataVersion(metaData);
 //}
 internal Poco(MetaDataInfo metaData)
 {
     MetaData = metaData;
 }