Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
		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;
		}
Esempio n. 4
0
		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.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;
        }
Esempio n. 6
0
        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
            });
        }
Esempio n. 7
0
 public TestCommandSettings(CommandSettingsModel settingsModel, bool isValueValid = true)
 {
     Settings      = settingsModel;
     _isValueValid = isValueValid;
 }
Esempio n. 8
0
 public ICommandSettingsProvider CreateCommandSettingsProvider(CommandSettingsModel settings)
 {
     return(new EditDialog(settings));
 }
Esempio n. 9
0
		public TestCommandSettings(CommandSettingsModel settingsModel, bool isValueValid = true)
		{
			Settings = settingsModel;
			_isValueValid = isValueValid;
		}
Esempio n. 10
0
        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());
        }
Esempio n. 11
0
 public ICommandSettingsProvider CreateCommandSettingsProvider(CommandSettingsModel settings)
 {
     return(new TestCommandSettings(settings));
 }