private void InitializeLayout() { layoutControl1.BeginUpdate(); try { var tabbedGroup = layoutControlGroup1.AddTabbedGroup(); tabbedGroup.Name = "TabbedGroup"; var group1 = tabbedGroup.AddTabPage(); group1.Name = "LayoutControlGroup1"; group1.Text = "Ingredients"; var gridIngredients = new EditableListGridControl <IngredientViewModel>(saveFile.Ingredients); gridIngredients.GridView.Columns["Name"].SortOrder = ColumnSortOrder.Ascending; var item1 = group1.AddItem(); item1.Name = "LayoutControlItem1"; item1.Control = gridIngredients; item1.TextVisible = false; var group2 = tabbedGroup.AddTabPage(); group2.Name = "LayoutControlGroup2"; group2.Text = "Recipes"; var gridRecipes = new EditableListGridControl <RecipeViewModel>(saveFile.Recipes); gridRecipes.GridView.Columns["Name"].SortOrder = ColumnSortOrder.Ascending; var item2 = group2.AddItem(); item2.Name = "LayoutControlItem2"; item2.Control = gridRecipes; item2.TextVisible = false; tabbedGroup.SelectedTabPage = group1; } finally { layoutControl1.EndUpdate(); } }
private BaseForm CreateForm(BaseAcceptableViewModel viewModel) { if (viewModel is IngredientEditorViewModel) { var ingredient = (IngredientEditorViewModel)viewModel; var txtName = new TextEdit(); txtName.BindText(ingredient, i => i.Name); return(FormBuilder.CreateSimpleOKCancel("Edit Ingredient", ingredient, txtName, "Name:")); } else if (viewModel is RecipeEditorViewModel) { var recipe = (RecipeEditorViewModel)viewModel; var txtName = new TextEdit(); txtName.BindText(recipe, r => r.Name); var tbl = new TableLayoutPanel(); tbl.ColumnCount = 4; tbl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); tbl.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); tbl.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize)); tbl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); tbl.RowCount = 1; tbl.RowStyles.Add(new RowStyle(SizeType.AutoSize)); tbl.Height = 28; tbl.MinimumSize = new Size(0, 28); var btnModify = new SimpleButton(); btnModify.Margin = new Padding(3); btnModify.Text = "Modify Recipe"; btnModify.Size = new Size(96, 22); btnModify.Bind(recipe.ModifyRecipeCommand); var btnReduce = new SimpleButton(); btnReduce.Margin = new Padding(3); btnReduce.Text = "Reduce"; btnReduce.Size = new Size(96, 22); btnReduce.Bind(recipe.ReduceRecipeCommand); tbl.SuspendLayout(); tbl.Controls.Add(btnModify, 1, 0); tbl.Controls.Add(btnReduce, 2, 0); tbl.ResumeLayout(); var ctrlAmount = new AmountControl(false); ctrlAmount.BindAmount(recipe, r => r.Amount); ctrlAmount.BindMeasurement(recipe, r => r.Measurement); var grid = new EditableListGridControl <IngredientReferenceViewModel>(recipe); return(FormBuilder.CreateOKCancel("Edit Recipe", recipe, new FormBuilderItem(txtName, "Name:"), new FormBuilderItem(grid, "Items:"), new FormBuilderItem(tbl), new FormBuilderItem(ctrlAmount, "Makes:"))); } else if (viewModel is IngredientReferenceEditorViewModel) { var ingredient = (IngredientReferenceEditorViewModel)viewModel; var cboIngredients = new SearchLookUpEdit(); cboIngredients.Properties.View.Columns.AddVisible("Display").SortOrder = ColumnSortOrder.Ascending; cboIngredients.Properties.View.OptionsView.ShowColumnHeaders = false; cboIngredients.Properties.View.OptionsView.ShowIndicator = false; cboIngredients.Properties.DataSource = ingredient.Ingredients; cboIngredients.Properties.ValueMember = "Value"; cboIngredients.Properties.DisplayMember = "Display"; cboIngredients.Properties.ShowAddNewButton = true; cboIngredients.AddNewValue += (o, e) => { // execute the add ingredient command ingredient.SearchText = cboIngredients.GetFilterText(); ingredient.AddIngredientCommand.Execute(this); e.Cancel = true; }; var binding = cboIngredients.BindEditValue(ingredient, (i => i.IngredientID)); binding.DataSourceNullValue = null; var ctrlAmount = new AmountControl(); ctrlAmount.BindAmount(ingredient, r => r.Amount); ctrlAmount.BindMeasurement(ingredient, r => r.Measurement); return(FormBuilder.CreateOKCancel("Edit Recipe Ingredient", ingredient, new FormBuilderItem(cboIngredients, "Ingredient:"), new FormBuilderItem(ctrlAmount))); } else if (viewModel is ModifyRecipeViewModel) { return(new ModifyRecipeDialog((ModifyRecipeViewModel)viewModel)); } else if (viewModel is ReduceRecipeViewModel) { return(new ReduceRecipeDialog((ReduceRecipeViewModel)viewModel)); } return(null); }