private static CreationFixture CreateWithParams(ConstructionNode node, Func <IObjectBuilder, ConstructionNode, BuildContext, object> createFunc) { var constructionContext = new ObjectBuilderContext( new SourceValueConverter(), new AttributeBasedMetadataProvider()); var prefixAnnotator = new PrefixAnnotator(); var executingAssembly = new[] { Assembly.GetExecutingAssembly() }; var attributeBasedTypeDirectory = new AttributeBasedTypeDirectory(executingAssembly); var builder = new ExtendedObjectBuilder( new InstanceCreator(constructionContext.SourceValueConverter, constructionContext, attributeBasedTypeDirectory), constructionContext, new ContextFactory(attributeBasedTypeDirectory, constructionContext)); var newTypeDirectory = GetTypeDirectory(); var creationContext = new BuildContext( new NamescopeAnnotator(constructionContext.MetadataProvider), new AmbientRegistrator(), new InstanceLifecycleSignaler()) { PrefixAnnotator = prefixAnnotator, PrefixedTypeResolver = new PrefixedTypeResolver(prefixAnnotator, newTypeDirectory) }; return(new CreationFixture { Result = createFunc(builder, node, creationContext), BuildContext = creationContext }); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var editor = new ScenarioDesignerElement(parent); editor.ApplyElementMeatadata((object)metadata); // Привязка к источнику данных IElementDataBinding valueBinding = context.Build(parent, metadata.Value); if (valueBinding != null) { valueBinding.OnPropertyValueChanged += (c, a) => editor.SetValue(a.Value); editor.OnValueChanged += (c, a) => valueBinding.SetPropertyValue(a.Value); var sourceValueBinding = valueBinding as ISourceDataBinding; if (sourceValueBinding != null) { // Передача контекста редактору var dataSourceName = sourceValueBinding.GetDataSource(); var dataSource = parent.GetDataSource(dataSourceName); editor.SetConfigId(dataSource.GetConfigId); editor.SetDocumentId(dataSource.GetDocumentId); editor.SetVersion(dataSource.GetVersion); } } return(editor); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var linkView = new LinkView(context.AppView, parent, () => CreateView(context, parent, metadata)); linkView.SetOpenMode((metadata.OpenMode as string).ToEnum(OpenMode.TabPage)); return(linkView); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var separatorItem = new ToolBarSeparatorItem(parent); separatorItem.ApplyElementMeatadata((object)metadata); return(separatorItem); }
public XamlLoader() { typeDirectory = GetTypeDirectory(); var metadataProvider = new MetadataProvider(); var sourceValueConverter = GetSourceValueConverter(); objectBuilderContext = new ObjectBuilderContext(sourceValueConverter, metadataProvider); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var element = new ContextMenuItemSeparator(parent); element.ApplyElementMeatadata((object)metadata); return(element); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var editor = new DeployDesignerElement(parent); editor.ApplyElementMeatadata((object)metadata); return(editor); }
public static T BuildFromDataSet <T>(DataSet dataSet) { var objectBuilder = new MultipleResultSetObjectBuilder(); var dataReader = dataSet.CreateDataReader(); var dataReaderAdapter = new DataReaderAdapter(dataReader); var context = new ObjectBuilderContext(typeof(T), dataReaderAdapter); return((T)objectBuilder.CreateInstance(context)); }
public bool CanProcess(ObjectBuilderContext context) { if (context.ResultType == typeof(object)) { return(true); } return(false); }
private static ViewPanelElement CreateEditPanel(ObjectBuilderContext context, View parent) { dynamic editPanel = new DynamicWrapper(); editPanel.ViewPanel = new DynamicWrapper(); editPanel.ViewPanel.View = CreateLinkView("Common", "EditPanelView"); return((ViewPanelElement)context.Build(parent, editPanel)); }
private static void ExecuteMenuItemAction(ObjectBuilderContext context, View parent, dynamic menuItemMetadata) { BaseAction action = context.Build(parent, menuItemMetadata.Action); if (action != null) { action.Execute(); } }
public bool CanProcess(ObjectBuilderContext context) { if (_sqlPrimitiveDataTypes.IsSqlPrimitiveType(context.ResultType)) { return(true); } return(false); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var documentDesigner = new DocumentDesignerElement(parent); documentDesigner.ApplyElementMeatadata((object)metadata); // Редакторы элементов метаданных if (metadata.Editors != null) { var editors = new List <ItemEditor>(); foreach (var editor in metadata.Editors) { editors.Add(new ItemEditor { Text = editor.Text, Image = editor.Image, Container = editor.Container, MetadataType = editor.MetadataType, LinkView = context.Build(parent, editor.LinkView) }); } documentDesigner.SetEditors(editors); } // Привязка к источнику данных представления IElementDataBinding itemsDataBinding = context.Build(parent, metadata.Items); if (itemsDataBinding != null) { itemsDataBinding.OnPropertyValueChanged += (c, a) => documentDesigner.SetItems(a.Value); var sourceItemsDataBinding = itemsDataBinding as ISourceDataBinding; if (sourceItemsDataBinding != null) { var dataSourceName = sourceItemsDataBinding.GetDataSource(); var dataSource = parent.GetDataSource(dataSourceName); // Установка идентификатора конфигурации documentDesigner.SetConfigId(dataSource.GetConfigId); // Оповещение источника об изменениях в редакторе documentDesigner.NotifyWhenEventAsync(i => i.OnUpdateItems, arguments => { arguments.DataSource = dataSourceName; return(true); }); } } return(documentDesigner); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var menuBar = new MenuBarElement(parent, () => GetMenuListMetadata(metadata.ConfigId), menuItem => ExecuteMenuItemAction(context, parent, menuItem)); menuBar.ApplyElementMeatadata((object)metadata); return(menuBar); }
private IObjectBuilder GetObjectBuilder(ObjectBuilderContext context) { foreach (IObjectBuilder objectBuilder in _objectBuilders) { if (objectBuilder.CanProcess(context)) { return(objectBuilder); } } return(null); }
private static void ExecuteAction(ObjectBuilderContext context, View parent, dynamic metadata) { IDataSource parentDataSource = parent.GetDataSource(metadata.DataSource); if (parentDataSource != null) { ViewHelper.ShowView(null, () => context.Build(parent, metadata.View), childDataSource => OnInitializeChildView(parentDataSource, childDataSource), childDataSource => OnAcceptedChildView(parentDataSource)); } }
public object CreateInstance(ObjectBuilderContext context) { foreach (IObjectBuilder objectBuilder in _configuration.ObjectBuilders) { if (objectBuilder.CanProcess(context)) { return(objectBuilder.CreateInstance(context)); } } throw new AdoExecutorException($"Not found object builder for type: {context.ResultType}"); }
protected override void ExecuteAction(ObjectBuilderContext context, BaseItemAction action, dynamic metadata) { var selectedItem = action.GetSelectedItem(); if (selectedItem != null) { ViewHelper.ShowView(selectedItem, () => context.Build(action.GetView(), metadata.View), childDataSource => OnInitializeChildView(childDataSource, selectedItem), childDataSource => OnAcceptedChildView(action, childDataSource, selectedItem)); } }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var dataBinding = new ParameterBinding(parent, metadata.Parameter, metadata.Property); ParameterElement dataSource = parent.GetParameter(metadata.Parameter); if (dataSource != null) { dataSource.AddDataBinding(dataBinding); } return(dataBinding); }
private static View CreateView(ObjectBuilderContext context, View parent, dynamic metadata) { LinkView linkView = context.Build(parent, metadata.View); if (linkView != null) { linkView.SetOpenMode(OpenMode.None); return(linkView.CreateView()); } return(null); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var dataBinding = new PropertyBinding(parent, metadata.DataSource, metadata.Property); IDataSource dataSource = parent.GetDataSource(metadata.DataSource); if (dataSource != null) { dataSource.AddDataBinding(dataBinding); } return(dataBinding); }
protected override void ExecuteAction(ObjectBuilderContext context, BaseItemAction action, dynamic metadata) { var selectedItem = action.GetSelectedItem(); if (selectedItem != null && (Convert.ToBoolean(metadata.Accept) == false || MessageBox.Show(Resources.DeleteItemActionQuestion, action.GetView().GetText(), MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)) { action.RemoveItem(selectedItem); } }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var viewPanel = new ViewPanelElement(parent, () => CreateView(context, parent, metadata)); viewPanel.ApplyElementMeatadata((object)metadata); if (parent != null && metadata.OnLoaded != null) { viewPanel.OnLoaded += parent.GetScript(metadata.OnLoaded); } return(viewPanel); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var element = new ConfigEditorElement(parent); element.ApplyElementMeatadata((object)metadata); var editPanelElement = CreateEditPanel(context, parent); var editPanel = new ConfigElementEditPanel(editPanelElement.GetControl(), (elementType, elementEditor) => CreateEditorView(context, editPanelElement.GetContentView(), elementType, elementEditor)); element.SetEditPanel(editPanel); return(element); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var gridPanel = new GridPanelElement(parent); gridPanel.ApplyElementMeatadata((object)metadata); var columns = (metadata.Columns != null) ? Convert.ToInt32(metadata.Columns) : 12; gridPanel.SetColumns(columns); if (metadata.Rows != null) { foreach (var rowMetadata in metadata.Rows) { var row = gridPanel.AddRow(); if (rowMetadata.Cells != null) { foreach (var cellMetadata in rowMetadata.Cells) { var columnSpan = (cellMetadata.ColumnSpan != null) ? Convert.ToInt32(cellMetadata.ColumnSpan) : 1; GridPanelCellElement cell = row.AddCell(columnSpan); var items = context.BuildMany(parent, cellMetadata.Items); if (items != null) { foreach (var item in items) { cell.AddItem(item); } } } } } } if (parent != null && metadata.OnLoaded != null) { gridPanel.OnLoaded += parent.GetScript(metadata.OnLoaded); } return(gridPanel); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var editor = new ConfigVerifyDesignerElement(parent); editor.ApplyElementMeatadata((object)metadata); // Привязка к источнику данных IElementDataBinding valueBinding = context.Build(parent, metadata.Value); if (valueBinding != null) { valueBinding.OnPropertyValueChanged += (c, a) => editor.SetValue(a.Value); } return(editor); }
public object Load(string xaml) { var constructionContext = new ObjectBuilderContext( Registrator.GetSourceValueConverter(), metadataProvider); var objectBuilder = new ExtendedObjectBuilder(new InstanceCreator(constructionContext.SourceValueConverter, constructionContext, directory), constructionContext, new ContextFactory(directory, constructionContext)); var cons = GetConstructionNode(xaml); var prefixedTypeResolver = new PrefixedTypeResolver(new PrefixAnnotator(), directory); var buildContext = new BuildContext(new NamescopeAnnotator(metadataProvider), new AmbientRegistrator(), new InstanceLifecycleSignaler()) { PrefixedTypeResolver = prefixedTypeResolver }; return(objectBuilder.Inflate(cons.Root, buildContext)); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var button = new ButtonElement(parent); button.ApplyElementMeatadata((object)metadata); button.SetImage(metadata.Image); var action = context.Build(parent, metadata.Action); button.SetAction(action); if (parent != null && metadata.OnClick != null) { button.OnClick += parent.GetScript(metadata.OnClick); } return(button); }
public object Build(ObjectBuilderContext context, View parent, dynamic metadata) { var toolBar = new ToolBarElement(parent); toolBar.ApplyElementMeatadata((object)metadata); var items = context.BuildMany(parent, metadata.Items); if (items != null) { foreach (var item in items) { toolBar.AddItem(item); } } return(toolBar); }
public bool CanProcess(ObjectBuilderContext context) { if (!context.ResultType.IsGenericType) { return(false); } var genericType = context.ResultType.GetGenericTypeDefinition(); return(genericType == typeof(Tuple <>) || genericType == typeof(Tuple <,>) || genericType == typeof(Tuple <, ,>) || genericType == typeof(Tuple <, , ,>) || genericType == typeof(Tuple <, , , ,>) || genericType == typeof(Tuple <, , , , ,>) || genericType == typeof(Tuple <, , , , , ,>) || genericType == typeof(Tuple <, , , , , , ,>)); }