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; }
static void Main() { BuilderForm.AddService(new MyTypeDiscoverer()); BuilderForm.AddService(new MyApplication()); BuilderForm win = new BuilderForm(); win.ShowDialog(); }
private void btnBuilder_Click(object sender, EventArgs e) { BuilderForm builderForm = new BuilderForm(); this.Hide(); builderForm.ShowDialog(); this.Show(); }
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); } }
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(); }
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); } }
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); } }
//Opens builder form private void btnBuilder_Click(object sender, EventArgs e) { BuilderForm BF = new BuilderForm(); BF.Show(); }
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); } }
private void toolStripMenuItem1_Click(object sender, EventArgs e) { BuilderForm bf = new BuilderForm(); bf.Show(); }