public MongoJsonEditorViewModel(string title, MongoDBComponent mongoComponent, string propertyValue, List <ITemplateSource> templateSources, string defaultText, SegmentedDocumentSerialiser serialiser, IDesignerContext designerContext) : base(designerContext) { Title = "MongoDB " + title; this.propertyValue = propertyValue; this.serialiser = serialiser; serialiser.AddConstructor("placeholder", (offset, text) => new PlaceholderSegment(offset, text, serialiser)); serialiser.AddConstructor("query", (offset, text) => new QueryPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("queryarray", (offset, text) => new QueryArrayPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("value", (offset, text) => new ValuePlaceholder(offset, text, serialiser)); serialiser.AddConstructor("valueArray", (offset, text) => new ValueArrayPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("field", (offset, text) => new FieldNamePlaceholder(offset, text, serialiser)); serialiser.AddConstructor("pipelineOperator", (offset, text) => new AggregationPipeLineOperatorPlaceHolder(offset, text, serialiser)); serialiser.AddConstructor("pipelineOperatorArray", (offset, text) => new AggregationPipeLineOperatorArrayPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("namevaluearray", (offset, text) => new NameValueArrayPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("updateOperatorArray", (offset, text) => new UpdateOperatorArrayPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("updateOperator", (offset, text) => new UpdateOperatorPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("groupoperatorarray", (offset, text) => new GroupOperatorArray(offset, text, serialiser)); serialiser.AddConstructor("expression", (offset, text) => new ExpressionPlaceholder(offset, text, serialiser)); serialiser.AddConstructor("NameExpressionArray", (offset, text) => new NameExpressionArrayPlaceholder(offset, text, serialiser)); TemplateSources = templateSources; this.defaultText = defaultText; }
public void EditValue(Property property, object designer) { var serialiser = new SegmentedDocumentSerialiser(); string propertyValue = GetPropertyValue(property); var viewModel = new MongoJsonEditorViewModel(property.Id, designer as MongoDBComponent, propertyValue, new List <ITemplateSource> { new MongoDatabaseTemplateSource(designer as MongoDBComponent, serialiser), new FilteredTemplateSource( new EmbeddedFileTemplateSource("Mongo Operators", "Twenty57.Linx.Components.Database.Resources.MongoTemplates.xml", serialiser), (Template) => Template.Category.StartsWith("Query Selectors") || Template.Category.StartsWith("Query Samples") ) }, "", serialiser, (designer as FunctionDesigner).Context ); viewModel.WatermarkText = "Write a mongo query operation here, or drag snippets from the 'Mongo Operators' tab below. "; viewModel.InitialiseDocument(new TextDocument()); if (MongoDB.Editors.MongoJsonEditor.MongoJsonEditor.Display(viewModel, ((FunctionDesigner)designer))) { property.Value = viewModel.SegmentedDocument.Text; } }
public ValueArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser) : base(offset, text, serialiser) { }
public NameExpressionArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser) : base(offset, text, serialiser) { }
public GroupOperatorArray(int offset, string text, SegmentedDocumentSerialiser serialiser) : base(offset, text, serialiser) { }
public UpdateOperatorArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser) : base(offset, text, serialiser) { }
public AggregationPipeLineOperatorArrayPlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser) : base(offset, text, serialiser) { }
public FieldNamePlaceholder(int offset, string text, SegmentedDocumentSerialiser serialiser) : base(offset, text, serialiser) { }
public FieldNamePlaceholder(SegmentedDocumentSerialiser segmentedDocumentSerialiser) { serialiser = segmentedDocumentSerialiser; }