private void AddToMethodsList(DotNetMethodRegion methodRegion) { if (MethodsToRunList == null) { var pluginActions = ModelItem.GetProperty <ICollection <IPluginAction> >("MethodsToRun"); if (pluginActions == null || pluginActions.Count == 0) { var current = pluginActions; var actions = current ?? new List <IPluginAction>(); var collection = new ObservableCollection <IPluginAction>(); collection.CollectionChanged += MethodsToRunListOnCollectionChanged; collection.AddRange(actions); MethodsToRunList = new ObservableCollection <IMethodToolRegion <IPluginAction> >(); } else { var actions = new ObservableCollection <IPluginAction>(); actions.CollectionChanged += MethodsToRunListOnCollectionChanged; actions.AddRange(pluginActions); var regionCollections = BuildRegionsFromActions(pluginActions); MethodsToRunList = regionCollections; } } var methodRegions = new ObservableCollection <IMethodToolRegion <IPluginAction> >(); methodRegions.AddRange(MethodsToRunList); methodRegions.Add(methodRegion); MethodsToRunList = methodRegions; NamespaceRegion.Dependants.Add(methodRegion); }
public DatabaseSourceRegion(IDbServiceModel model, ModelItem modelItem, enSourceType type) { LabelWidth = 46; ToolRegionName = "DatabaseSourceRegion"; Dependants = new List <IToolRegion>(); NewSourceCommand = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => model.CreateNewSource(type)); EditSourceCommand = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => model.EditSource(SelectedSource, type), CanEditSource); var sources = model.RetrieveSources().OrderBy(source => source.Name); Sources = sources.Where(source => source != null && source.Type == type).ToObservableCollection(); IsEnabled = true; _modelItem = modelItem; SourceId = modelItem.GetProperty <Guid>("SourceId"); SourcesHelpText = Warewolf.Studio.Resources.Languages.HelpText.DatabaseServiceSourceTypesHelp; EditSourceHelpText = Warewolf.Studio.Resources.Languages.HelpText.DatabaseServiceEditSourceHelp; NewSourceHelpText = Warewolf.Studio.Resources.Languages.HelpText.DatabaseServiceNewSourceHelp; SourcesTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManageDbServiceSourcesTooltip; EditSourceTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManageDbServiceEditSourceTooltip; NewSourceTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManageDbServiceNewSourceTooltip; if (SourceId != Guid.Empty) { SelectedSource = Sources.FirstOrDefault(source => source.Id == SourceId); } }
void SetupHeaders(ModelItem modelItem) { var existing = modelItem.GetProperty <IList <INameValue> >("Headers"); var headers = new ObservableCollection <INameValue>(); if (existing != null) { foreach (var header in existing) { var nameValue = new NameValue(header.Name, header.Value); nameValue.PropertyChanged += ValueOnPropertyChanged; headers.Add(nameValue); } } else { var nameValue = new NameValue(); nameValue.PropertyChanged += ValueOnPropertyChanged; headers.Add(nameValue); } headers.CollectionChanged += HeaderCollectionOnCollectionChanged; Headers = headers; AddHeaders(); }
void SetupHeaders(ModelItem modelItem) { var existing = modelItem.GetProperty <IList <INameValue> >("Headers"); var nameValues = existing ?? new List <INameValue>(); var headerCollection = new ObservableCollection <INameValue>(); headerCollection.CollectionChanged += HeaderCollectionOnCollectionChanged; headerCollection.AddRange(nameValues); Headers = headerCollection; if (Headers.Count == 0) { Headers.Add(new ObservableAwareNameValue(Headers, s => { _modelItem.SetProperty("Headers", _headers.Select(a => new NameValue(a.Name, a.Value) as INameValue).ToList()); })); } else { var nameValue = Headers.Last(); if (!string.IsNullOrWhiteSpace(nameValue.Name) || !string.IsNullOrWhiteSpace(nameValue.Value)) { Headers.Add(new ObservableAwareNameValue(Headers, s => { _modelItem.SetProperty("Headers", _headers.Select(a => new NameValue(a.Name, a.Value) as INameValue).ToList()); })); } } }
public DotNetSourceRegion(IPluginServiceModel model, ModelItem modelItem) { LabelWidth = 74; ToolRegionName = "DotNetSourceRegion"; SetInitialValues(); Dependants = new List <IToolRegion>(); NewSourceCommand = new DelegateCommand(model.CreateNewSource); EditSourceCommand = new DelegateCommand(() => model.EditSource(SelectedSource), CanEditSource); var sources = model.RetrieveSources().OrderBy(source => source.Name); Sources = sources.ToObservableCollection(); IsEnabled = true; _modelItem = modelItem; SourceId = modelItem.GetProperty <Guid>("SourceId"); SourcesHelpText = Warewolf.Studio.Resources.Languages.HelpText.PluginServiceSourcesHelp; EditSourceHelpText = Warewolf.Studio.Resources.Languages.HelpText.PluginServiceEditSourceHelp; NewSourceHelpText = Warewolf.Studio.Resources.Languages.HelpText.PluginServiceNewSourceHelp; SourcesTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManagePluginServiceSourcesTooltip; EditSourceTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManagePluginServiceEditSourceTooltip; NewSourceTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManagePluginServiceNewSourceTooltip; if (SourceId != Guid.Empty) { SelectedSource = Sources.FirstOrDefault(source => source.Id == SourceId); } }
public ExchangeInputRegion(ModelItem modelItem) { ToolRegionName = "ExchangeInputRegion"; _modelItem = modelItem; var inputsFromModel = _modelItem.GetProperty <List <IServiceInput> >("Inputs"); Inputs = new List <IServiceInput>(inputsFromModel ?? new List <IServiceInput>()); }
public OutputsRegion(ModelItem modelItem, bool isObjectOutputUsed, IFieldAndPropertyMapper mapper) : this(mapper) { Dependants = new List <IToolRegion>(); _modelItem = modelItem; var serviceOutputMappings = _modelItem.GetProperty <ICollection <IServiceOutputMapping> >("Outputs"); var outputs = new ObservableCollection <IServiceOutputMapping>(); IsEnabled = serviceOutputMappings != null; if (serviceOutputMappings != null) { outputs.AddRange(serviceOutputMappings); } outputs.CollectionChanged += OutputsCollectionChanged; Outputs = outputs; IsObject = _modelItem.GetProperty <bool>("IsObject"); ObjectResult = _modelItem.GetProperty <string>("ObjectResult"); ObjectName = _modelItem.GetProperty <string>("ObjectName"); IsObjectOutputUsed = isObjectOutputUsed; IsOutputsEmptyRows = !IsObject ? Outputs.Count == 0 : !string.IsNullOrWhiteSpace(ObjectResult); }
public DbActionRegionOdbc(IDbServiceModel model, ModelItem modelItem, ISourceToolRegion <IDbSource> source) { Errors = new List <string>(); LabelWidth = 46; ToolRegionName = "DbActionRegionODBC"; _modelItem = modelItem; _model = model; _source = source; _source.SomethingChanged += SourceOnSomethingChanged; Dependants = new List <IToolRegion>(); IsEnabled = true; _modelItem = modelItem; CommandText = _modelItem.GetProperty <string>("CommandText") ?? ""; IsActionEnabled = _source?.SelectedSource != null; }
public ExchangeSourceRegion(IExchangeServiceModel model, ModelItem modelItem, string type) { LabelWidth = 70; ToolRegionName = "ExchangeSourceRegion"; Dependants = new List <IToolRegion>(); NewSourceCommand = new DelegateCommand(o => model.CreateNewSource()); EditSourceCommand = new DelegateCommand(o => model.EditSource(SelectedSource), o => CanEditSource()); var sources = model.RetrieveSources().OrderBy(source => source.ResourceName); Sources = sources.Where(source => source != null && source.ResourceType == type).ToObservableCollection(); IsEnabled = true; _modelItem = modelItem; SourceId = modelItem.GetProperty <Guid>("SourceId"); if (SavedSource != null) { SelectedSource = Sources.FirstOrDefault(source => source.ResourceID == SavedSource.ResourceID); } }
public DatabaseInputRegion(ModelItem modelItem, IActionToolRegion <IDbAction> action) : this(new ActionInputDatatalistMapper()) { ToolRegionName = "DatabaseInputRegion"; _modelItem = modelItem; _action = action; _action.SomethingChanged += SourceOnSomethingChanged; var inputsFromModel = _modelItem.GetProperty <List <IServiceInput> >("Inputs"); var serviceInputs = inputsFromModel ?? new List <IServiceInput>(); var inputs = new ObservableCollection <IServiceInput>(); inputs.CollectionChanged += InputsCollectionChanged; inputs.AddRange(serviceInputs); Inputs = inputs; if (inputsFromModel == null) { UpdateOnActionSelection(); } IsEnabled = _action?.SelectedAction != null; }
public DotNetConstructorInputRegion(ModelItem modelItem, IConstructorRegion <IPluginConstructor> action) : this(new ActionInputDatatalistMapper()) { ToolRegionName = "DotNetConstructorInputRegion"; _modelItem = modelItem; _action = action; _action.SomethingChanged += SourceOnSomethingChanged; var inputsFromModel = _modelItem.GetProperty <List <IServiceInput> >("ConstructorInputs"); var serviceInputs = inputsFromModel ?? new List <IServiceInput>(); Inputs = new ObservableCollection <IServiceInput>(); var inputs = new ObservableCollection <IServiceInput>(); inputs.CollectionChanged += InputsCollectionChanged; inputs.AddRange(serviceInputs); Inputs = inputs; IsInputsEmptyRows = Inputs.Count == 0; if (inputsFromModel == null) { UpdateOnActionSelection(); } IsEnabled = action?.SelectedConstructor != null; }
public OutputsRegion(ModelItem modelItem, bool isObjectOutputUsed = false) { ToolRegionName = "OutputsRegion"; Dependants = new List <IToolRegion>(); _modelItem = modelItem; var serviceOutputMappings = _modelItem.GetProperty <ICollection <IServiceOutputMapping> >("Outputs"); if (_modelItem.GetProperty("Outputs") == null || _modelItem.GetProperty <IList <IServiceOutputMapping> >("Outputs").Count == 0) { var current = serviceOutputMappings; if (current == null) { IsEnabled = false; } var outputMappings = current ?? new List <IServiceOutputMapping>(); var outputs = new ObservableCollection <IServiceOutputMapping>(); outputs.CollectionChanged += OutputsCollectionChanged; outputs.AddRange(outputMappings); Outputs = outputs; } else { IsEnabled = true; var outputs = new ObservableCollection <IServiceOutputMapping>(); outputs.CollectionChanged += OutputsCollectionChanged; outputs.AddRange(serviceOutputMappings); Outputs = outputs; } IsObject = _modelItem.GetProperty <bool>("IsObject"); ObjectResult = _modelItem.GetProperty <string>("ObjectResult"); ObjectName = _modelItem.GetProperty <string>("ObjectName"); IsObjectOutputUsed = isObjectOutputUsed; if (!IsObject) { IsOutputsEmptyRows = Outputs.Count == 0; } else { IsOutputsEmptyRows = !string.IsNullOrWhiteSpace(ObjectResult); } _shellViewModel = CustomContainer.Get <IShellViewModel>(); }
void Verify_IsFocused(ModelItem modelItem, Action doError, string isFocusedPropertyName) { Assert.IsFalse(modelItem.GetProperty <bool>(isFocusedPropertyName)); doError.Invoke(); Assert.IsTrue(modelItem.GetProperty <bool>(isFocusedPropertyName)); }
public override IList <IToolRegion> BuildRegions() { IList <IToolRegion> regions = new List <IToolRegion>(); if (SourceRegion == null) { SourceRegion = new DotNetSourceRegion(Model, ModelItem) { SourceChangedAction = () => { if (OutputsRegion != null) { OutputsRegion.IsEnabled = false; OutputsRegion.IsObject = true; OutputsRegion.IsOutputsEmptyRows = true; } ClearToolRegionErrors(); } }; regions.Add(SourceRegion); NamespaceRegion = new DotNetNamespaceRegion(Model, ModelItem, SourceRegion) { SourceChangedNamespace = () => { if (OutputsRegion != null) { OutputsRegion.IsEnabled = true; OutputsRegion.IsObject = true; OutputsRegion.IsOutputsEmptyRows = true; } ClearToolRegionErrors(); }, IsNewPluginNamespace = true }; NamespaceRegion.SomethingChanged += (sender, args) => { if (args.Errors != null) { Errors = args.Errors.Select(e => new ActionableErrorInfo { ErrorType = ErrorType.Critical, Message = e } as IActionableErrorInfo).ToList(); } var dotNetNamespaceRegion = sender as DotNetNamespaceRegion; var outputsRegion = dotNetNamespaceRegion?.Dependants.Single(region => region is OutputsRegion) as OutputsRegion; if (outputsRegion != null) { if (dotNetNamespaceRegion.SelectedNamespace != null) { outputsRegion.ObjectResult = dotNetNamespaceRegion.SelectedNamespace.JsonObject; } } OnPropertyChanged("IsActionsVisible"); }; regions.Add(NamespaceRegion); ConstructorRegion = new DotNetConstructorRegion(Model, ModelItem, SourceRegion, NamespaceRegion) { SourceChangedAction = () => { if (OutputsRegion != null) { OutputsRegion.IsEnabled = true; OutputsRegion.IsObject = true; OutputsRegion.IsOutputsEmptyRows = !string.IsNullOrWhiteSpace(OutputsRegion.ObjectResult); } //ClearToolRegionErrors(); } }; ConstructorRegion.SomethingChanged += (sender, args) => { OnPropertyChanged("IsConstructorVisible"); }; ConstructorRegion.ErrorsHandler += (sender, list) => { List <ActionableErrorInfo> errorInfos = list.Select(error => new ActionableErrorInfo(new ErrorInfo { ErrorType = ErrorType.Critical, Message = error }, () => { })).ToList(); UpdateDesignValidationErrors(errorInfos); Errors = new List <IActionableErrorInfo>(errorInfos); }; regions.Add(ConstructorRegion); InputArea = new DotNetConstructorInputRegion(ModelItem, ConstructorRegion); regions.Add(InputArea); OutputsRegion = new OutputsRegion(ModelItem, true) { IsObject = true, IsEnabled = false }; regions.Add(OutputsRegion); var pluginActions = ModelItem.GetProperty <List <IPluginAction> >("MethodsToRun"); var regionCollections = BuildRegionsFromActions(pluginActions); if (regionCollections.Any()) { MethodsToRunList = regionCollections; CreateMethodRegion(); } else { CreateMethodRegion(); } ErrorRegion = new ErrorRegion(); regions.Add(ErrorRegion); SourceRegion.Dependants.Add(NamespaceRegion); NamespaceRegion.Dependants.Add(ConstructorRegion); NamespaceRegion.Dependants.Add(OutputsRegion); ConstructorRegion.Dependants.Add(InputArea); ConstructorRegion.Dependants.Add(OutputsRegion); OutputsRegion.Dependants.Add(ConstructorRegion); } Regions = regions; return(regions); }
/// <summary> /// <remarks><strong>DO NOT</strong> bind to properties that use this - use <see cref="ModelItem"/>.PropertyName instead!</remarks> /// </summary> protected T GetProperty <T>([CallerMemberName] string propertyName = null) { return(_modelItem.GetProperty <T>(propertyName)); }