示例#1
0
        /// <summary>
        /// 格式化默认项的值
        /// </summary>
        /// <param name="item">项信息</param>
        /// <param name="entityInfo">实体信息</param>
        /// <param name="selectedProject">选中的项目</param>
        /// <param name="itemInfo">项的属性信息</param>
        /// <returns></returns>
        public static string FormatDefaultValue(ConfigItem item,
                                                EntityInfo entityInfo, Project selectedProject, UIModelItem itemInfo)
        {
            string value = item.DefaultValue;

            value = UIConfigItem.FormatParameter(value, entityInfo, selectedProject);
            value = value.Replace("{ItemSummary}", item.Summary);
            value = value.Replace("{ItemName}", item.Name);
            if (itemInfo != null)
            {
                value = value.Replace("{PropertyName}", itemInfo.PropertyName);
                value = value.Replace("{PropertySummary}", itemInfo.Summary);
                value = value.Replace("{PropertyTypeName}", itemInfo.TypeName);
                value = value.Replace("{PropertyTypeFullName}", itemInfo.TypeFullName);
            }
            return(value);
        }
示例#2
0
        ///// <summary>
        ///// 清空项目的编译缓存
        ///// </summary>
        //public void ClearCache(EntityInfo entityInfo, List<UIProjectItem> lstItem)
        //{
        //    foreach (UIProjectItem pitem in lstItem)
        //    {
        //        string mPath = UIConfigItem.FormatParameter(pitem.ModelPath, entityInfo);
        //        CodeGenCache.DeleteGenerationer(mPath);
        //        if (pitem.ChildItems != null && pitem.ChildItems.Count > 0)
        //        {
        //            ClearCache(entityInfo, pitem.ChildItems);
        //        }
        //    }
        //}

        /// <summary>
        /// 生成代码
        /// </summary>
        /// <param name="entityInfo">实体信息</param>
        /// <param name="classConfig">UI配置信息</param>
        /// <param name="selectPropertys">选中需要生成的属性信息</param>
        /// <param name="lstItem">UI项目项</param>
        /// <param name="parentItem">父项</param>
        /// <returns></returns>
        private void GenerateCode(EntityInfo entityInfo, UIConfigItem classConfig, Project selectedProject,
                                  List <UIModelItem> selectPropertys, UIModelItem classInfo, List <UIProjectItem> lstItem, ProjectItem parentItem)
        {
            Encoding fileEncoding = null;

            foreach (UIProjectItem pitem in lstItem)
            {
                string      mPath   = UIConfigItem.FormatParameter(pitem.ModelPath, entityInfo, selectedProject);
                string      tPath   = UIConfigItem.FormatParameter(pitem.TargetPath, entityInfo, selectedProject);
                CodeGenInfo info    = CodeGenCache.GetGenerationer(mPath, entityInfo);
                string      content = info.Invoke(entityInfo, classConfig, selectPropertys, classInfo);
                fileEncoding = pitem.Encoding;
                ProjectItem item = SaveItem(tPath, selectedProject, content, pitem.GenType, parentItem, fileEncoding);
                if (pitem.ChildItems != null && pitem.ChildItems.Count > 0)
                {
                    GenerateCode(entityInfo, classConfig, selectedProject, selectPropertys, classInfo, pitem.ChildItems, item);
                }
            }
        }
示例#3
0
        /// <summary>
        /// 加载信息
        /// </summary>
        private void LoadInfo()
        {
            if (_curEntityInfo == null)
            {
                return;
            }
            XmlDocument doc = LoadConfig();

            _config = new UIConfigItem(doc, _curEntityInfo.DesignerInfo);



            List <UIModelItem> lstItems = _curEntityInfo.Propertys;

            foreach (UIModelItem item in lstItems)
            {
                item.InitDefaultValue(_config.ConfigItems, CurEntityInfo, CurEntityInfo.DesignerInfo.CurrentProject, item);
            }
        }
示例#4
0
 /// <summary>
 /// 生成代码
 /// </summary>
 /// <param name="entityInfo">实体信息</param>
 /// <param name="classConfig">UI配置信息</param>
 /// <param name="selectPropertys">选中需要生成的属性信息</param>
 /// <returns></returns>
 public void GenerateCode(EntityInfo entityInfo, UIConfigItem classConfig, Project selectedProject, List <UIModelItem> selectPropertys, UIModelItem classInfo)
 {
     GenerateCode(entityInfo, classConfig, selectedProject, selectPropertys, classInfo, _lstItems, null);
 }