Beispiel #1
0
 public Control(WayRelateListBuilder builder)
 {
     if (DBContexts == null)
     {
         DBContexts = new List <Extend.ValueDescription>();
         var typeDiscoverer = BuilderForm.GetService <Services.ITypeDiscoverer>();
         var dbtypes        = typeDiscoverer.GetTypes(typeof(Way.EntityDB.DBContext));
         if (dbtypes != null)
         {
             dbtypes = dbtypes.Where(m => m.GetConstructor(new Type[0]) != null).ToArray();
             foreach (var dbtype in dbtypes)
             {
                 DBContexts.Add(new ValueDescription(dbtype, "Name"));
             }
         }
     }
     _builder = builder;
     InitializeComponent();
     _source = new RelateConfig[10];
     for (int i = 0; i < _source.Length; i++)
     {
         _source[i] = new WayRelateList.RelateConfig(_source);
     }
     lstColumns.ItemsSource = _source;
 }
Beispiel #2
0
        static void Main()
        {
            BuilderForm.AddService(new MyTypeDiscoverer());
            BuilderForm.AddService(new MyApplication());
            BuilderForm win = new BuilderForm();

            win.ShowDialog();
        }
Beispiel #3
0
        private void btnBuilder_Click(object sender, EventArgs e)
        {
            BuilderForm builderForm = new BuilderForm();

            this.Hide();
            builderForm.ShowDialog();
            this.Show();
        }
Beispiel #4
0
        private void btnMakeCode_Click(object sender, RoutedEventArgs e)
        {
            var columns = (from m in _source
                           where m.DBContext != null && m.Table != null
                           select m).ToArray();

            if (columns.Length == 0)
            {
                return;
            }

            try
            {
                string templateFolderPath = BuilderForm.GetService <Services.IApplication>().GetTemplatePath();
                if (System.IO.Directory.Exists(templateFolderPath) == false)
                {
                    throw new Exception("缺乏代码模板文件夹,不能生成代码");
                }

                var encode = System.Text.Encoding.GetEncoding("gb2312");
                templateFolderPath += "//WayRelateList//";

                if (true)
                {
                    #region html代码
                    if (true)
                    {
                        string htmlTemplate;

                        htmlTemplate = File.ReadAllText($"{templateFolderPath}html.txt", encode);



                        htmlTemplate = htmlTemplate.Replace("{%ControlId}", _builder.ControlId);


                        StringBuilder itemBuffer = new StringBuilder();
                        foreach (var column in columns)
                        {
                            itemBuffer.AppendLine($"<config datasource=\"{column.DBContext.Value.ToString() + "." + ((PropertyInfo)column.Table.Value).Name}\" {(column.RelaColumnName.IsNullOrEmpty() ?"": "relateMember='"+column.RelaColumnName+"'")} textMember=\"{column.TextColumnName}\" {(column.Loop?"loop='true'":"")} valueMember=\"{column.ValueColumnName}\"></config>");
                        }

                        txtHtml.Text = htmlTemplate.Replace("{%DataSource}", itemBuffer.ToString());
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Helper.ShowError(ex);
            }
        }
Beispiel #5
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var culture = new CultureInfo(Settings.Default.Language);
            culture.UseOnCurrentThread();

            var instance = new BuilderForm();
            instance.Show();

            Application.Run();
        }
Beispiel #6
0
        private void btnMakeCode_Click(object sender, RoutedEventArgs e)
        {
            //valueMember="id" textMember="Name" datasource="Way.Lib.ScriptRemoting.WinTest.MyDB.Databases"
            try
            {
                string templateFolderPath = BuilderForm.GetService <Services.IApplication>().GetTemplatePath();
                if (System.IO.Directory.Exists(templateFolderPath) == false)
                {
                    throw new Exception("缺乏代码模板文件夹,不能生成代码");
                }

                var encode = System.Text.Encoding.GetEncoding("gb2312");
                templateFolderPath += "//" + _builder.Name + "//";

                if (true)
                {
                    #region html代码
                    if (true)
                    {
                        string htmlTemplate;

                        htmlTemplate = File.ReadAllText($"{templateFolderPath}html.txt", encode);



                        htmlTemplate = htmlTemplate.Replace("{%ControlId}", _builder.ControlId);


                        txtHtml.Text = htmlTemplate.Replace("{%Attributes}", _builder.GetAttributes());
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Helper.ShowError(ex);
            }
        }
Beispiel #7
0
        private void ShowDrowDown(Type value)
        {
            try
            {
                if (this.wSrv == null)
                {
                    this.wSrv = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
                }

                if (list == null)
                {
                    list           = new ListBox();
                    list.Height    = 300;
                    list.GotFocus += List_GotFocus;
                    list.Click    += new EventHandler(list_Click);
                }

                list.BorderStyle = System.Windows.Forms.BorderStyle.None;

                var typeDiscoverer = BuilderForm.GetService <Services.ITypeDiscoverer>();
                var dbtypes        = typeDiscoverer.GetTypes(typeof(Way.EntityDB.DBContext));
                if (dbtypes != null)
                {
                    dbtypes            = dbtypes.Where(m => m.GetConstructor(new Type[0]) != null).ToArray();
                    list.DisplayMember = "Name";
                    list.DataSource    = dbtypes;
                }


                _tosetValue = value;
                wSrv.DropDownControl(list);
            }
            catch (Exception ex2)
            {
                throw (ex2);
            }
        }
Beispiel #8
0
        //Opens builder form
        private void btnBuilder_Click(object sender, EventArgs e)
        {
            BuilderForm BF = new BuilderForm();

            BF.Show();
        }
Beispiel #9
0
        private void build()
        {
            var columns = (from m in _columns
                           where m.IsChecked == true
                           select m).ToArray();

            if (columns.Length == 0)
            {
                return;
            }

            try
            {
                string templateFolderPath = BuilderForm.GetService <Services.IApplication>().GetTemplatePath();
                if (System.IO.Directory.Exists(templateFolderPath) == false)
                {
                    throw new Exception("缺乏代码模板文件夹,不能生成代码");
                }

                var encode = System.Text.Encoding.GetEncoding("gb2312");
                templateFolderPath += "//WayGridView//";

                if (true)
                {
                    #region html代码
                    if (true)
                    {
                        string htmlTemplate;
                        string itemTemplate;
                        string headerItemTemplate;
                        string searchTemplate = null;

                        htmlTemplate       = File.ReadAllText($"{templateFolderPath}html.txt", encode);
                        itemTemplate       = File.ReadAllText($"{templateFolderPath}html.Item.txt", encode);
                        headerItemTemplate = File.ReadAllText($"{templateFolderPath}html.HeaderItem.txt", encode);


                        htmlTemplate = htmlTemplate.Replace("{%ControlId}", _builder.ControlId)
                                       .Replace("{%PageSize}", _builder.PageSize.ToString())
                                       .Replace("{%AllowEdit}", _builder.AllowEdit ? "true" : "")
                                       .Replace("{%SearchID}", _builder.ShowSearchArea ? _builder.ControlId + "_search" : "")
                                       .Replace("{%ControlDatasource}", $"{((Type)_builder.DBContext.Value).FullName}.{((PropertyInfo)_builder.Table.Value).Name}");


                        StringBuilder itemBuffer = new StringBuilder();
                        foreach (var column in columns)
                        {
                            if (column.RelaTableName.IsNullOrEmpty() == false && column.RelaColumnName.IsNullOrEmpty() == false && column.DisplayColumnName.IsNullOrEmpty() == false)
                            {
                                itemBuffer.AppendLine(itemTemplate.Replace("{%Text}", $"{{@{column.Name}:{((Type)_builder.DBContext.Value).FullName}.{column.RelaTableName}.{column.RelaColumnName}:{column.DisplayColumnName}}}"));
                            }
                            else
                            {
                                itemBuffer.AppendLine(itemTemplate.Replace("{%Text}", "{@" + column.Name + "}"));
                            }
                        }
                        StringBuilder headerBuffer = new StringBuilder();
                        foreach (var column in columns)
                        {
                            headerBuffer.AppendLine(headerItemTemplate.Replace("{%Text}", column.caption.IsNullOrEmpty() ? column.Name : column.caption));
                        }

                        htmlTemplate = htmlTemplate.Replace("{%Items}", itemBuffer.ToString());
                        htmlTemplate = htmlTemplate.Replace("{%HeaderItems}", headerBuffer.ToString());

                        if (_builder.ShowSearchArea)
                        {
                            searchTemplate = File.ReadAllText($"{templateFolderPath}html.Search.txt", encode).
                                             Replace("{%ElementId}", _builder.ControlId + "_search").
                                             Replace("{%ControlId}", _builder.ControlId);

                            string        textTemplate     = File.ReadAllText($"{templateFolderPath}html.Search.Item.Text.txt", encode);
                            string        selectorTemplate = File.ReadAllText($"{templateFolderPath}html.Search.Item.Selector.txt", encode);
                            StringBuilder searchBuffer     = new StringBuilder();
                            foreach (var column in columns)
                            {
                                string template         = textTemplate;
                                bool   relateOtherTable = column.RelaTableName.IsNullOrEmpty() == false && column.RelaColumnName.IsNullOrEmpty() == false && column.DisplayColumnName.IsNullOrEmpty() == false;
                                if (column.PropertyInfo.PropertyType.IsEnum || relateOtherTable)
                                {
                                    template = selectorTemplate;
                                }
                                template = template.Replace("{%Caption}", column.caption.IsNullOrEmpty() ? column.Name : column.caption)
                                           .Replace("{%ColumnName}", column.Name);
                                if (column.PropertyInfo.PropertyType.IsEnum)
                                {
                                    StringBuilder arrStr = new StringBuilder();
                                    arrStr.Append("[");
                                    FieldInfo[] fields = column.PropertyInfo.PropertyType.GetFields();
                                    for (int i = 1; i < fields.Length; i++)
                                    {
                                        if (i > 1)
                                        {
                                            arrStr.Append(',');
                                        }
                                        arrStr.Append($"{{text:\"{fields[i].Name}\",value:\"{fields[i].Name}\"}}");
                                    }

                                    arrStr.Append("]");
                                    template = template.Replace("{%DataSource}", arrStr.ToString())
                                               .Replace("{%AttributeArea}", "selectonly=\"true\"");
                                }
                                else if (relateOtherTable)
                                {
                                    template = template.Replace("{%DataSource}", $"{((Type)_builder.DBContext.Value).FullName}.{column.RelaTableName}")
                                               .Replace("{%AttributeArea}", $"textMember='{column.DisplayColumnName}' valueMember='{column.RelaColumnName}'");
                                }
                                searchBuffer.AppendLine(template);
                            }
                            searchTemplate = searchTemplate.Replace("{%SearchItems}", searchBuffer.ToString());
                        }

                        if (!searchTemplate.IsNullOrEmpty())
                        {
                            searchTemplate += "\r\n";
                        }
                        txtHtml.Text = searchTemplate + htmlTemplate;
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Helper.ShowError(ex);
            }
        }
Beispiel #10
0
        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            BuilderForm bf = new BuilderForm();

            bf.Show();
        }