private ActionExecutionContext CloneContextWithUseDefaultSettingsOption(ActionExecutionContext executionContext) { var contextWithUseDefaultSettingsOption = executionContext.Clone(); var settings = new CommandSettingsModel { UseDefaultSettings = () => !Keyboard.IsKeyDown(Key.LeftShift) }; contextWithUseDefaultSettingsOption.SettingsProvider = _commandSettingsProviderFactory.CreateCommandSettingsProvider(settings); return(contextWithUseDefaultSettingsOption); }
private async Task ConfigureSettings(CancellationToken cancellationToken) { ExecutionContext.EnsureSettingsProviderAvailable(); _settingsModel = ExecutionContext.SettingsProvider.Settings; _settingsModel.IsTextInputVisible = false; var expandedColumns = new List <ColumnDescriptionItem>(); var databaseLinkReferences = new List <OracleObjectWithColumnsReference>(); _asteriskNode = FillColumnNames(expandedColumns, databaseLinkReferences, true); var useDefaultSettings = _settingsModel.UseDefaultSettings == null || _settingsModel.UseDefaultSettings(); foreach (var databaseLinkReference in databaseLinkReferences) { var databaseLinkIdentifier = String.Concat(databaseLinkReference.DatabaseLinkNode.Terminals.Select(t => t.Token.Value)); var remoteObjectIdenrifier = OracleObjectIdentifier.Create(databaseLinkReference.OwnerNode, databaseLinkReference.ObjectNode, null); var columnNames = await CurrentQueryBlock.SemanticModel.DatabaseModel.GetRemoteTableColumnsAsync(databaseLinkIdentifier, remoteObjectIdenrifier, cancellationToken); expandedColumns.AddRange( columnNames.Select( n => new ColumnDescriptionItem { OwnerIdentifier = databaseLinkReference.FullyQualifiedObjectName, ColumnName = n.ToSimpleIdentifier() })); } foreach (var expandedColumn in expandedColumns.DistinctBy(c => c.ColumnNameLabel)) { _settingsModel.AddBooleanOption( new BooleanOption { OptionIdentifier = expandedColumn.ColumnNameLabel, DescriptionContent = BuildColumnOptionDescription(expandedColumn), Value = !expandedColumn.IsPseudocolumn && !expandedColumn.IsHidden && useDefaultSettings, Tag = expandedColumn }); } _settingsModel.Title = "Expand Asterisk"; _settingsModel.Heading = _settingsModel.Title; }
private async Task ConfigureSettings(CancellationToken cancellationToken) { ExecutionContext.EnsureSettingsProviderAvailable(); _settingsModel = ExecutionContext.SettingsProvider.Settings; _settingsModel.IsTextInputVisible = false; var expandedColumns = new List<ColumnDescriptionItem>(); var databaseLinkReferences = new List<OracleObjectWithColumnsReference>(); _asteriskNode = FillColumnNames(expandedColumns, databaseLinkReferences, true); var useDefaultSettings = _settingsModel.UseDefaultSettings == null || _settingsModel.UseDefaultSettings(); foreach (var databaseLinkReference in databaseLinkReferences) { var databaseLinkIdentifier = String.Concat(databaseLinkReference.DatabaseLinkNode.Terminals.Select(t => t.Token.Value)); var remoteObjectIdenrifier = OracleObjectIdentifier.Create(databaseLinkReference.OwnerNode, databaseLinkReference.ObjectNode, null); var columnNames = await CurrentQueryBlock.SemanticModel.DatabaseModel.GetRemoteTableColumnsAsync(databaseLinkIdentifier, remoteObjectIdenrifier, cancellationToken); expandedColumns.AddRange( columnNames.Select( n => new ColumnDescriptionItem { OwnerIdentifier = databaseLinkReference.FullyQualifiedObjectName, ColumnName = n.ToSimpleIdentifier() })); } foreach (var expandedColumn in expandedColumns.Distinct(c => c.ColumnNameLabel)) { _settingsModel.AddBooleanOption( new BooleanOption { OptionIdentifier = expandedColumn.ColumnNameLabel, DescriptionContent = BuildColumnOptionDescription(expandedColumn), Value = !expandedColumn.IsPseudocolumn && !expandedColumn.IsHidden && useDefaultSettings, Tag = expandedColumn }); } _settingsModel.Title = "Expand Asterisk"; _settingsModel.Heading = _settingsModel.Title; }
private void ConfigureSettings() { ExecutionContext.EnsureSettingsProviderAvailable(); _settingsModel = ExecutionContext.SettingsProvider.Settings; _settingsModel.IsTextInputVisible = false; var columnNames = FillColumnNames(); foreach (var column in columnNames) { var isSelected = _settingsModel.UseDefaultSettings == null || !_settingsModel.UseDefaultSettings() ? _existingColumns.Contains(column.Name.ToQuotedIdentifier()) : _settingsModel.UseDefaultSettings(); var columnDescription = new ColumnDescriptionItem { DataType = column.FullTypeName, ColumnName = OracleCodeCompletionProvider.GetPrettyColumnName(column.Name), IsHidden = column.Hidden, Nullable = column.Nullable }; _settingsModel.AddBooleanOption( new BooleanOption { OptionIdentifier = column.Name.ToSimpleIdentifier(), DescriptionContent = ExpandAsteriskCommand.BuildColumnOptionDescription(columnDescription), Value = isSelected, Tag = column }); } _settingsModel.Title = "Add/Modify Columns"; _settingsModel.Heading = _settingsModel.Title; }
private void ConfigureSettings() { ExecutionContext.EnsureSettingsProviderAvailable(); _settingsModel = ExecutionContext.SettingsProvider.Settings; _settingsModel.ValidationRule = new OracleIdentifierValidationRule(); _settingsModel.Title = "Create table script"; _settingsModel.Description = "Enter table name: "; _settingsModel.Heading = _settingsModel.Title; var createTableAsAllowed = CurrentQueryBlock == SemanticModel.MainQueryBlock; _settingsModel.AddBooleanOption( new BooleanOption { OptionIdentifier = CreateSeparateStatement, DescriptionContent = "Create separate statement", Value = !createTableAsAllowed, IsEnabled = createTableAsAllowed }); }
public TestCommandSettings(CommandSettingsModel settingsModel, bool isValueValid = true) { Settings = settingsModel; _isValueValid = isValueValid; }
public ICommandSettingsProvider CreateCommandSettingsProvider(CommandSettingsModel settings) { return(new EditDialog(settings)); }
public ICollection <ContextAction> GetContextActions(SqlDocumentRepository sqlDocumentRepository, ActionExecutionContext executionContext) { if (sqlDocumentRepository?.Statements == null || executionContext.StatementText != sqlDocumentRepository.StatementText) { return(EmptyCollection); } var currentTerminal = sqlDocumentRepository.Statements.GetTerminalAtPosition(executionContext.CaretOffset); if (currentTerminal == null) { return(EmptyCollection); } var precedingTerminal = currentTerminal.PrecedingTerminal; if (currentTerminal.SourcePosition.IndexStart == executionContext.CaretOffset && precedingTerminal != null && precedingTerminal.SourcePosition.IndexEnd + 1 == executionContext.CaretOffset && currentTerminal.Id.In(Terminals.Comma, Terminals.LeftParenthesis, Terminals.RightParenthesis)) { currentTerminal = precedingTerminal; } var semanticModel = (OracleStatementSemanticModel)sqlDocumentRepository.ValidationModels[currentTerminal.Statement].SemanticModel; var settings = new CommandSettingsModel { Value = "Enter value" }; executionContext.SettingsProvider = _commandSettingsProviderFactory.CreateCommandSettingsProvider(settings); var actionList = new List <ContextAction>(); if (OracleCommands.AddAlias.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(AddAliasCommand.Title, OracleCommands.AddAlias, executionContext)); } if (OracleCommands.WrapAsInlineView.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(WrapAsInlineViewCommand.Title, OracleCommands.WrapAsInlineView, executionContext)); } if (OracleCommands.WrapAsCommonTableExpression.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(WrapAsCommonTableExpressionCommand.Title, OracleCommands.WrapAsCommonTableExpression, executionContext)); } if (OracleCommands.ToggleQuotedNotation.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(ToggleQuotedNotationCommand.Title, OracleCommands.ToggleQuotedNotation, executionContext)); } if (OracleCommands.AddToGroupByClause.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(AddToGroupByCommand.Title, OracleCommands.AddToGroupByClause, executionContext)); } if (OracleCommands.AddToOrderByClause.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(AddToOrderByCommand.Title, OracleCommands.AddToOrderByClause, executionContext)); } var canExecuteResult = OracleCommands.ExpandAsterisk.CanExecuteHandler(executionContext); if (canExecuteResult) { actionList.Add(new ContextAction(ExpandAsteriskCommand.Title, OracleCommands.ExpandAsterisk, CloneContextWithUseDefaultSettingsOption(executionContext), canExecuteResult.IsLongOperation)); } if (OracleCommands.UnnestInlineView.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(UnnestInlineViewCommand.Title, OracleCommands.UnnestInlineView, executionContext)); } if (OracleCommands.ToggleFullyQualifiedReferences.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(ToggleFullyQualifiedReferencesCommand.Title, OracleCommands.ToggleFullyQualifiedReferences, executionContext)); } if (OracleCommands.AddMissingColumn.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(AddMissingColumnCommand.Title, OracleCommands.AddMissingColumn, executionContext)); } canExecuteResult = OracleCommands.CreateScript.CanExecuteHandler(executionContext); if (canExecuteResult) { actionList.Add(new ContextAction(CreateScriptCommand.Title, OracleCommands.CreateScript, CloneContextWithUseDefaultSettingsOption(executionContext), canExecuteResult.IsLongOperation)); } if (OracleCommands.AddInsertIntoColumnList.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(AddInsertIntoColumnListCommand.Title, OracleCommands.AddInsertIntoColumnList, CloneContextWithUseDefaultSettingsOption(executionContext))); } if (OracleCommands.CleanRedundantSymbol.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(CleanRedundantSymbolCommand.Title, OracleCommands.CleanRedundantSymbol, executionContext)); } if (OracleCommands.AddCreateTableAs.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(AddCreateTableAsCommand.Title, OracleCommands.AddCreateTableAs, executionContext)); } if (OracleCommands.Unquote.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(UnquoteCommand.Title, OracleCommands.Unquote, executionContext)); } if (OracleCommands.PropagateColumn.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(PropagateColumnCommand.Title, OracleCommands.PropagateColumn, executionContext)); } if (OracleCommands.ConvertOrderByNumberColumnReferences.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(ConvertOrderByNumberColumnReferencesCommand.Title, OracleCommands.ConvertOrderByNumberColumnReferences, executionContext)); } if (OracleCommands.GenerateCustomTypeCSharpWrapperClass.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(GenerateCustomTypeCSharpWrapperClassCommand.Title, OracleCommands.GenerateCustomTypeCSharpWrapperClass, executionContext)); } if (OracleCommands.SplitString.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(SplitStringCommand.Title, OracleCommands.SplitString, executionContext)); } if (OracleCommands.ExtractPackageInterface.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(ExtractPackageInterfaceCommand.Title, OracleCommands.ExtractPackageInterface, executionContext)); } if (OracleCommands.ExpandView.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(ExpandViewCommand.Title, OracleCommands.ExpandView, executionContext, true)); } if (OracleCommands.ConfigureNamedParameters.CanExecuteHandler(executionContext)) { actionList.Add(new ContextAction(ConfigureNamedParameterCommand.Title, OracleCommands.ConfigureNamedParameters, CloneContextWithUseDefaultSettingsOption(executionContext))); } var actions = ResolveAmbiguousColumnCommand.ResolveCommandHandlers(semanticModel, currentTerminal) .Select(c => new ContextAction("Resolve as " + c.Name, c, executionContext)); actionList.AddRange(actions); actions = BindVariableLiteralConversionCommand.ResolveCommandHandlers(semanticModel, currentTerminal) .Select(c => new ContextAction(c.Name, c, executionContext)); actionList.AddRange(actions); actions = LiteralBindVariableConversionCommand.ResolveCommandHandlers(semanticModel, currentTerminal) .Select(c => new ContextAction(c.Name, c, executionContext)); actionList.AddRange(actions); // TODO: Resolve command order return(actionList.AsReadOnly()); }
public ICommandSettingsProvider CreateCommandSettingsProvider(CommandSettingsModel settings) { return(new TestCommandSettings(settings)); }