public void VisitPartitionReference(OraclePartitionReference partitionReference)
        {
            if (partitionReference.Partition == null)
            {
                return;
            }

            var databaseModel = partitionReference.Container.SemanticModel.DatabaseModel;

            if (partitionReference.Partition is OracleSubPartition subPartition)
            {
                var subPartitionDetail = new SubPartitionDetailsModel();

                SetBasePartitionData(subPartitionDetail, partitionReference);

                databaseModel.UpdateSubPartitionDetailsAsync(subPartitionDetail, CancellationToken.None);
                ToolTip = new ToolTipPartition(subPartitionDetail);
            }
            else
            {
                var partitionDetail = new PartitionDetailsModel(16);

                SetBasePartitionData(partitionDetail, partitionReference);

                databaseModel.UpdatePartitionDetailsAsync(partitionDetail, CancellationToken.None);
                ToolTip = new ToolTipPartition(partitionDetail);
            }
        }
Example #2
0
    // Use this for initialization
    void Start()
    {
        helper = GetComponent <IToolTip>();
        if (helper == null)
        {
            helper = GetComponentInChildren <IToolTip>();
        }

        // make sure we have an EventTrigger
        EventTrigger trigger = GetComponent <EventTrigger>();

        if (trigger == null)
        {
            trigger = gameObject.AddComponent <EventTrigger>();
        }

        // add callbacks to mouse enter and mouse exit
        EventTrigger.Entry pointerEnter = new EventTrigger.Entry();
        pointerEnter.eventID = EventTriggerType.PointerEnter;
        pointerEnter.callback.AddListener((data) => { OnPointerEnter(); });
        trigger.triggers.Add(pointerEnter);

        EventTrigger.Entry pointerExit = new EventTrigger.Entry();
        pointerExit.eventID = EventTriggerType.PointerExit;
        pointerExit.callback.AddListener((data) => { OnPointerExit(); });
        trigger.triggers.Add(pointerExit);
    }
        public void UpdateMouseover()
        {
            TooltipType = WorldTooltipType.None;
            var cell = Game.viewport.ViewToWorld(Viewport.LastMousePos);

            if (!world.Map.IsInMap(cell))
            {
                return;
            }

            if (world.ShroudObscures(cell))
            {
                TooltipType = WorldTooltipType.Unexplored;
                return;
            }

            var actor = world.FindUnitsAtMouse(Viewport.LastMousePos).FirstOrDefault();

            if (actor == null)
            {
                return;
            }

            ActorTooltip = actor.TraitsImplementing <IToolTip>().FirstOrDefault();
            if (ActorTooltip != null)
            {
                TooltipType = WorldTooltipType.Actor;
            }
        }
Example #4
0
		public void VisitColumnReference(OracleColumnReference columnReference)
		{
			if (TryBuildSchemaTooltip(columnReference))
			{
				return;
			}

			if (columnReference.ObjectNode == _terminal)
			{
				columnReference.ValidObjectReference?.Accept(this);
				return;
			}

			if (columnReference.ColumnDescription == null)
			{
				return;
			}

			var validObjectReference = columnReference.ValidObjectReference;
			var isSchemaObject = validObjectReference.Type == ReferenceType.SchemaObject;
			var targetSchemaObject = isSchemaObject ? validObjectReference.SchemaObject.GetTargetSchemaObject() : null;
			var databaseModel = columnReference.Container.SemanticModel.DatabaseModel;

			if (isSchemaObject)
			{
				ColumnDetailsModel dataModel;
				switch (targetSchemaObject.Type)
				{
					case OracleObjectType.Table:
					case OracleObjectType.MaterializedView:
						dataModel = BuildColumnDetailsModel(databaseModel, columnReference);
						ToolTip = columnReference.ColumnDescription.IsPseudocolumn
							? (IToolTip)new ToolTipViewColumn(dataModel)
							: new ToolTipColumn(dataModel);

						return;

					case OracleObjectType.View:
						dataModel = BuildColumnDetailsModel(databaseModel, columnReference);
						ToolTip = new ToolTipViewColumn(dataModel);
						return;
				}
			}

			var objectPrefix = columnReference.ObjectNode == null && !String.IsNullOrEmpty(validObjectReference.FullyQualifiedObjectName.Name)
				? $"{validObjectReference.FullyQualifiedObjectName.ToLabel()}."
				: null;

			var qualifiedColumnName = isSchemaObject && String.Equals(targetSchemaObject.Type, OracleObjectType.Sequence)
				? null
				: $"{objectPrefix}{columnReference.NormalizedName.ToSimpleIdentifier()}";

			var labelBuilder = new ToolTipLabelBuilder();
			labelBuilder.AddElement(qualifiedColumnName);
			labelBuilder.AddElement(columnReference.ColumnDescription.FullTypeName);
			labelBuilder.AddElement($"{(columnReference.ColumnDescription.Nullable ? null : "NOT ")}NULL");

			ToolTip = new ToolTipObject { DataContext = labelBuilder.ToString() };
		}
Example #5
0
 public void RemoveToolTip(IToolTip toolTip)
 {
     if (currentToolTip == toolTip)
     {
         currentToolTip = null;
         SetToolTipActive(false);
     }
 }
Example #6
0
        private void SetToolTip(UIFormField formField, IControlHabanero control)
        {
            string   toolTipText = formField.GetToolTipText();
            IToolTip toolTip     = ControlFactory.CreateToolTip();

            if (!String.IsNullOrEmpty(toolTipText))
            {
                toolTip.SetToolTip(control, toolTipText);
            }
        }
Example #7
0
 public void SetToolTip(IToolTip toolTip)
 {
     if (toolTip == null)
     {
         SetToolTipActive(false);
     }
     else
     {
         currentToolTip = toolTip;
         SetToolTipActive(true);
     }
 }
        public void VisitTableCollectionReference(OracleTableCollectionReference tableCollectionReference)
        {
            if (TryBuildSchemaTooltip(tableCollectionReference))
            {
                return;
            }

            ToolTip =
                new ToolTipObject
            {
                DataContext = $"{tableCollectionReference.FullyQualifiedObjectName} ({tableCollectionReference.Type.ToCategoryLabel()})"
            };
        }
        private void BuildSimpleToolTip(OracleSchemaObject schemaObject)
        {
            if (schemaObject == null)
            {
                return;
            }

            ToolTip =
                new ToolTipObject
            {
                DataContext = GetFullSchemaObjectToolTip(schemaObject)
            };
        }
Example #10
0
    public void Show(Vector3 position, string msg, IToolTip helper)
    {
        currentHelper = helper;

        SetText(msg);

        toolTip.SetActive(true);
        toolTip.transform.position = position;

        // position it based on quadrant of the screen
        RectTransform rect = image.rectTransform;

        rect.pivot = new Vector2(position.x < canvas.pixelRect.width / 2 ? 0 : 1, position.y < canvas.pixelRect.height / 2 ? 0 : 1);
    }
Example #11
0
    //Show tip
    public void Show(Vector3 position, string msg, IToolTip helper)
    {
        _currentHelper = helper;

        SetText(msg);

        _toolTip.SetActive(true);
        _toolTip.transform.position = position;

        // position it based on quadrant of the screen
        RectTransform rect = _panel.GetComponent <RectTransform>();

        rect.pivot = new Vector2(position.x < _canvas.pixelRect.width / 2 ? 0 : 1, position.y < _canvas.pixelRect.height / 2 ? 0 : 1);
    }
        public void VisitPlSqlExceptionReference(OraclePlSqlExceptionReference exceptionReference)
        {
            if (exceptionReference.Exceptions.Count != 1)
            {
                return;
            }

            var exception             = exceptionReference.Exceptions.First();
            var initializationPostfix = exception.ErrorCode.HasValue ? $"(Error code {exception.ErrorCode})" : null;

            ToolTip =
                new ToolTipObject
            {
                DataContext = $"Exception {exception.Name.ToSimpleIdentifier()} {initializationPostfix}".TrimEnd()
            };
        }
        private void BuildSchemaTooltip(OracleDatabaseModelBase databaseModel)
        {
            if (!databaseModel.AllSchemas.TryGetValue(_terminal.Token.Value.ToQuotedIdentifier(), out OracleSchema schema))
            {
                return;
            }

            var dataModel = new OracleSchemaModel {
                Schema = schema
            };

            databaseModel.UpdateUserDetailsAsync(dataModel, CancellationToken.None);
            ToolTip = new ToolTipSchema(dataModel)
            {
                ScriptExtractor = databaseModel.ObjectScriptExtractor
            };
        }
Example #14
0
        // Update is called once per frame
        void Update()
        {
            // look under the mouse for a tooltip source
            current = null;
            Vector2    pos = Input.mousePosition;
            GameObject go  = GetObjectUnderPos(pos);

            if (go)
            {
                // found an object...
                current = go.GetComponent <IToolTip>();
                if (current == null && go.transform.parent)
                {
                    current = go.transform.parent.GetComponent <IToolTip>();
                }
                if (current != null)
                {
                    string tip = current.getToolTipMessage();

                    if (tip != "")
                    {
                        tooltipObject.SetActive(true);

                        // we need this to force a recalculation of the text size to propagate up to the parent frame
                        toolTipText.text = "";
                        // set the text to the tooltip one
                        toolTipText.text = tip;

                        // positon at the mouse
                        toolTipTransform.position = pos;

                        // make it point inwards to the centre of the screen
                        bool goLeft = (pos.x > Screen.width / 2);
                        toolTipTransform.pivot = new Vector2(goLeft ? 1 : 0, pos.y > Screen.height / 2 ? 1 : 0);
                    }
                    else
                    {
                        current = null;
                    }
                }
            }


            // turn the tooltip on or off based on whether we have a thing under the mouse
            tooltipObject.SetActive(current != null);
        }
        public void VisitProgramReference(OracleProgramReference programReference)
        {
            if (TryBuildSchemaTooltip(programReference))
            {
                return;
            }

            var scriptExtractor = programReference.Container.SemanticModel.DatabaseModel.ObjectScriptExtractor;

            if (programReference.ObjectNode == _terminal)
            {
                var targetObject = programReference.SchemaObject.GetTargetSchemaObject();
                if (targetObject != null)
                {
                    var objectDetailModel =
                        new ObjectDetailsModel
                    {
                        Title   = GetFullSchemaObjectToolTip(programReference.SchemaObject),
                        Comment = programReference.SchemaObject.Documentation,
                        Object  = targetObject
                    };

                    ToolTip =
                        new ToolTipView
                    {
                        ScriptExtractor     = scriptExtractor,
                        IsExtractDdlVisible = true,
                        DataContext         = objectDetailModel
                    };
                }

                return;
            }

            if (programReference.DatabaseLinkNode != null || programReference.Metadata == null)
            {
                return;
            }

            ToolTip =
                new ToolTipProgram(programReference.Metadata.Identifier.FullyQualifiedIdentifier, programReference.Metadata.Documentation, programReference.Metadata)
            {
                ScriptExtractor = scriptExtractor
            };
        }
        public void VisitTypeReference(OracleTypeReference typeReference)
        {
            if (TryBuildSchemaTooltip(typeReference) || typeReference.SchemaObject == null)
            {
                return;
            }

            ToolTip =
                new ToolTipView
            {
                IsExtractDdlVisible = true,
                ScriptExtractor     = typeReference.Container.SemanticModel.DatabaseModel.ObjectScriptExtractor,
                DataContext         =
                    new ObjectDetailsModel
                {
                    Title  = GetFullSchemaObjectToolTip(typeReference.SchemaObject),
                    Object = typeReference.SchemaObject.GetTargetSchemaObject()
                }
            };
        }
        public void VisitSequenceReference(OracleSequenceReference sequenceReference)
        {
            if (TryBuildSchemaTooltip(sequenceReference))
            {
                return;
            }

            var schemaObject = (OracleSequence)sequenceReference.SchemaObject.GetTargetSchemaObject();

            if (schemaObject == null)
            {
                return;
            }

            var toolTipText = GetFullSchemaObjectToolTip(sequenceReference.SchemaObject);

            ToolTip =
                new ToolTipSequence(toolTipText, schemaObject)
            {
                ScriptExtractor = sequenceReference.Container.SemanticModel.DatabaseModel.ObjectScriptExtractor
            };
        }
Example #18
0
		public void VisitSequenceReference(OracleSequenceReference sequenceReference)
		{
			if (TryBuildSchemaTooltip(sequenceReference))
			{
				return;
			}

			var schemaObject = (OracleSequence)sequenceReference.SchemaObject.GetTargetSchemaObject();
			if (schemaObject == null)
			{
				return;
			}

			var toolTipText = GetFullSchemaObjectToolTip(sequenceReference.SchemaObject);
			ToolTip =
				new ToolTipSequence(toolTipText, schemaObject)
				{
					ScriptExtractor = sequenceReference.Container.SemanticModel.DatabaseModel.ObjectScriptExtractor
				};
		}
        public void VisitDataObjectReference(OracleDataObjectReference objectReference)
        {
            if (TryBuildSchemaTooltip(objectReference))
            {
                return;
            }

            if (objectReference.Type == ReferenceType.SchemaObject)
            {
                var schemaObject = objectReference.SchemaObject.GetTargetSchemaObject();
                if (schemaObject == null)
                {
                    return;
                }

                TableDetailsModel dataModel;

                var databaseModel = objectReference.Container.SemanticModel.DatabaseModel;
                var toolTipText   = GetFullSchemaObjectToolTip(objectReference.SchemaObject);

                switch (schemaObject.Type)
                {
                case OracleObjectType.MaterializedView:
                    var materializedView = (OracleMaterializedView)schemaObject;
                    dataModel =
                        new MaterializedViewDetailsModel
                    {
                        MaterializedViewTitle = toolTipText,
                        Title            = GetObjectTitle(OracleObjectIdentifier.Create(materializedView.Owner, materializedView.TableName), OracleObjectType.Table.ToLower()),
                        MaterializedView = materializedView
                    };

                    SetPartitionKeys(dataModel);

                    databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);
                    ToolTip =
                        new ToolTipMaterializedView
                    {
                        ScriptExtractor = databaseModel.ObjectScriptExtractor,
                        DataContext     = dataModel
                    };

                    break;

                case OracleObjectType.Table:
                    dataModel =
                        new TableDetailsModel
                    {
                        Title = toolTipText,
                        Table = (OracleTable)schemaObject
                    };

                    SetPartitionKeys(dataModel);

                    databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);

                    ToolTip =
                        new ToolTipTable
                    {
                        ScriptExtractor = databaseModel.ObjectScriptExtractor,
                        DataContext     = dataModel
                    };

                    break;

                case OracleObjectType.View:
                    var objectDetailModel =
                        new ObjectDetailsModel
                    {
                        Title  = toolTipText,
                        Object = schemaObject
                    };

                    DocumentationDataDictionaryObject documentation;
                    if (TryGetDataDictionaryObjectDocumentation(schemaObject.FullyQualifiedName, out documentation) && !String.IsNullOrWhiteSpace(documentation.Value))
                    {
                        objectDetailModel.Comment = documentation.Value;
                    }
                    else
                    {
                        databaseModel.UpdateViewDetailsAsync(schemaObject.FullyQualifiedName, objectDetailModel, CancellationToken.None);
                    }

                    ToolTip =
                        new ToolTipView
                    {
                        IsExtractDdlVisible = true,
                        ScriptExtractor     = databaseModel.ObjectScriptExtractor,
                        DataContext         = objectDetailModel
                    };

                    break;

                case OracleObjectType.Sequence:
                    ToolTip = new ToolTipSequence(toolTipText, (OracleSequence)schemaObject);
                    break;
                }
            }
            else
            {
                ToolTip =
                    new ToolTipObject
                {
                    DataContext = $"{objectReference.FullyQualifiedObjectName.ToLabel()} ({objectReference.Type.ToCategoryLabel()})"
                };
            }
        }
        public void VisitPlSqlVariableReference(OraclePlSqlVariableReference variableReference)
        {
            if (variableReference.Variables.Count != 1)
            {
                return;
            }

            var element      = variableReference.Variables.First();
            var labelBuilder = new ToolTipLabelBuilder();

            var elementTypeName = element.GetType().Name;
            var elementName     = $"{element.Name.ToSimpleIdentifier()}:";

            switch (elementTypeName)
            {
            case nameof(OraclePlSqlParameter):
                var parameter = (OraclePlSqlParameter)element;
                labelBuilder.AddElement("Parameter");
                labelBuilder.AddElement(elementName);
                labelBuilder.AddElement(GetDataTypeFromNode(parameter));
                labelBuilder.AddElement("NULL");
                labelBuilder.AddElement(GetDefaultExpression(variableReference.PlSqlProgram, parameter), "= ");
                break;

            case nameof(OraclePlSqlVariable):
                var variable = (OraclePlSqlVariable)element;
                labelBuilder.AddElement(variable.IsConstant ? "Constant" : "Variable");
                labelBuilder.AddElement(elementName);
                var dataTypeName = variable.DataType == null?GetDataTypeFromNode(variable) : OracleDataType.ResolveFullTypeName(variable.DataType);

                labelBuilder.AddElement(dataTypeName);
                labelBuilder.AddElement(variable.Nullable ? "NULL" : "NOT NULL");
                labelBuilder.AddElement(GetDefaultExpression(variableReference.PlSqlProgram, variable), "= ");
                break;

            case nameof(OraclePlSqlType):
                labelBuilder.AddElement("Type");
                labelBuilder.AddElement(elementName);
                break;

            case nameof(OraclePlSqlCursorVariable):
                var cursor = (OraclePlSqlCursorVariable)element;

                if (variableReference.ObjectNode != null && variableReference.IdentifierNode == _terminal)
                {
                    labelBuilder.AddElement("Cursor column");

                    var columns           = cursor.SemanticModel?.MainQueryBlock?.NamedColumns[variableReference.NormalizedName].ToArray();
                    var columnName        = variableReference.NormalizedName.ToSimpleIdentifier();
                    var columnNameAndType = columns != null && columns.Length == 1 && !String.IsNullOrEmpty(columns[0].ColumnDescription.FullTypeName)
                                                        ? $"{columnName}: {columns[0].ColumnDescription.FullTypeName}"
                                                        : columnName;

                    labelBuilder.AddElement($"{cursor.Name.ToSimpleIdentifier()}.{columnNameAndType}");
                }
                else
                {
                    labelBuilder.AddElement(cursor.IsImplicit ? "Implicit cursor" : "Cursor");
                    labelBuilder.AddElement(elementName);

                    if (cursor.SemanticModel != null)
                    {
                        var queryText = cursor.SemanticModel.Statement.RootNode.GetText(variableReference.Container.SemanticModel.StatementText);
                        labelBuilder.AddElement(queryText);
                    }
                }

                break;
            }

            ToolTip = new ToolTipObject {
                DataContext = labelBuilder.ToString()
            };
        }
Example #21
0
		private void BuildSchemaTooltip(OracleDatabaseModelBase databaseModel)
		{
			OracleSchema schema;
			if (!databaseModel.AllSchemas.TryGetValue(_terminal.Token.Value.ToQuotedIdentifier(), out schema))
			{
				return;
			}

			var dataModel = new OracleSchemaModel { Schema = schema };
			databaseModel.UpdateUserDetailsAsync(dataModel, CancellationToken.None);
			ToolTip = new ToolTipSchema(dataModel) { ScriptExtractor = databaseModel.ObjectScriptExtractor };
		}
Example #22
0
		public void VisitProgramReference(OracleProgramReference programReference)
		{
			if (TryBuildSchemaTooltip(programReference))
			{
				return;
			}

			var scriptExtractor = programReference.Container.SemanticModel.DatabaseModel.ObjectScriptExtractor;

			if (programReference.ObjectNode == _terminal)
			{
				var targetObject = programReference.SchemaObject.GetTargetSchemaObject();
				if (targetObject != null)
				{
					var objectDetailModel =
						new ObjectDetailsModel
						{
							Title = GetFullSchemaObjectToolTip(programReference.SchemaObject),
							Comment = programReference.SchemaObject.Documentation,
							Object = targetObject
						};

					ToolTip =
						new ToolTipView
						{
							ScriptExtractor = scriptExtractor,
							IsExtractDdlVisible = true,
							DataContext = objectDetailModel
						};
				}

				return;
			}

			if (programReference.DatabaseLinkNode != null || programReference.Metadata == null)
			{
				return;
			}

			ToolTip =
				new ToolTipProgram(programReference.Metadata.Identifier.FullyQualifiedIdentifier, programReference.Metadata.Documentation, programReference.Metadata)
				{
					ScriptExtractor = scriptExtractor
				};
		}
Example #23
0
		public void VisitPlSqlVariableReference(OraclePlSqlVariableReference variableReference)
		{
			if (variableReference.Variables.Count != 1)
			{
				return;
			}

			var element = variableReference.Variables.First();
			var labelBuilder = new ToolTipLabelBuilder();

			var elementTypeName = element.GetType().Name;
			var elementName = $"{element.Name.ToSimpleIdentifier()}:";
			switch (elementTypeName)
			{
				case nameof(OraclePlSqlParameter):
					var parameter = (OraclePlSqlParameter)element;
					labelBuilder.AddElement("Parameter");
					labelBuilder.AddElement(elementName);
					labelBuilder.AddElement(GetDataTypeFromNode(parameter));
					labelBuilder.AddElement("NULL");
					labelBuilder.AddElement(GetDefaultExpression(variableReference.PlSqlProgram, parameter), "= ");
					break;

				case nameof(OraclePlSqlVariable):
					var variable = (OraclePlSqlVariable)element;
					labelBuilder.AddElement(variable.IsConstant ? "Constant" : "Variable");
					labelBuilder.AddElement(elementName);
					var dataTypeName = variable.DataType == null ? GetDataTypeFromNode(variable) : OracleDataType.ResolveFullTypeName(variable.DataType);
					labelBuilder.AddElement(dataTypeName);
					labelBuilder.AddElement(variable.Nullable ? "NULL" : "NOT NULL");
					labelBuilder.AddElement(GetDefaultExpression(variableReference.PlSqlProgram, variable), "= ");
					break;

				case nameof(OraclePlSqlType):
					labelBuilder.AddElement("Type");
					labelBuilder.AddElement(elementName);
					break;

				case nameof(OraclePlSqlCursorVariable):
					var cursor = (OraclePlSqlCursorVariable)element;

					if (variableReference.ObjectNode != null && variableReference.IdentifierNode == _terminal)
					{
						labelBuilder.AddElement("Cursor column");

						var columns = cursor.SemanticModel?.MainQueryBlock?.NamedColumns[variableReference.NormalizedName].ToArray();
						var columnName = variableReference.NormalizedName.ToSimpleIdentifier();
						var columnNameAndType = columns != null && columns.Length == 1 && !String.IsNullOrEmpty(columns[0].ColumnDescription.FullTypeName)
							? $"{columnName}: {columns[0].ColumnDescription.FullTypeName}"
							: columnName;

						labelBuilder.AddElement($"{cursor.Name.ToSimpleIdentifier()}.{columnNameAndType}");
					}
					else
					{
						labelBuilder.AddElement(cursor.IsImplicit ? "Implicit cursor" : "Cursor");
						labelBuilder.AddElement(elementName);

						if (cursor.SemanticModel != null)
						{
							var queryText = cursor.SemanticModel.Statement.RootNode.GetText(variableReference.Container.SemanticModel.StatementText);
							labelBuilder.AddElement(queryText);
						}
					}

					break;
			}

			ToolTip = new ToolTipObject { DataContext = labelBuilder.ToString() };
		}
Example #24
0
		public void VisitPlSqlExceptionReference(OraclePlSqlExceptionReference exceptionReference)
		{
			if (exceptionReference.Exceptions.Count != 1)
			{
				return;
			}

			var exception = exceptionReference.Exceptions.First();
			var initializationPostfix = exception.ErrorCode.HasValue ? $"(Error code {exception.ErrorCode})" : null;

			ToolTip =
				new ToolTipObject
				{
					DataContext = $"Exception {exception.Name.ToSimpleIdentifier()} {initializationPostfix}".TrimEnd()
				};
		}
 public void ShowToolTip(IToolTip m_ToolTip)
 {
     MoveToPointer();
     m_ToolTipDescriptions.text = m_ToolTip.Description;
     m_ToolTipTransform.gameObject.SetActive(true);
 }
Example #26
0
		public void VisitDataObjectReference(OracleDataObjectReference objectReference)
		{
			if (TryBuildSchemaTooltip(objectReference))
			{
				return;
			}

			if (objectReference.Type == ReferenceType.SchemaObject)
			{
				var schemaObject = objectReference.SchemaObject.GetTargetSchemaObject();
				if (schemaObject == null)
				{
					return;
				}

				TableDetailsModel dataModel;

				var databaseModel = objectReference.Container.SemanticModel.DatabaseModel;
				var toolTipText = GetFullSchemaObjectToolTip(objectReference.SchemaObject);

				switch (schemaObject.Type)
				{
					case OracleObjectType.MaterializedView:
						var materializedView = (OracleMaterializedView)schemaObject;
						dataModel =
							new MaterializedViewDetailsModel
							{
								MaterializedViewTitle = toolTipText,
								Title = GetObjectTitle(OracleObjectIdentifier.Create(materializedView.Owner, materializedView.TableName), OracleObjectType.Table.ToLower()),
								MaterializedView = materializedView
							};

						SetPartitionKeys(dataModel);

						databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);
						ToolTip =
							new ToolTipMaterializedView
							{
								ScriptExtractor = databaseModel.ObjectScriptExtractor,
								DataContext = dataModel
							};

						break;

					case OracleObjectType.Table:
						dataModel =
							new TableDetailsModel
							{
								Title = toolTipText,
								Table = (OracleTable)schemaObject
							};

						SetPartitionKeys(dataModel);

						databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None);

						ToolTip =
							new ToolTipTable
							{
								ScriptExtractor = databaseModel.ObjectScriptExtractor,
								DataContext = dataModel
							};

						break;

					case OracleObjectType.View:
						var objectDetailModel =
							new ObjectDetailsModel
							{
								Title = toolTipText,
								Object = schemaObject
							};

						DocumentationDataDictionaryObject documentation;
						if (TryGetDataDictionaryObjectDocumentation(schemaObject.FullyQualifiedName, out documentation) && !String.IsNullOrWhiteSpace(documentation.Value))
						{
							objectDetailModel.Comment = documentation.Value;
						}
						else
						{
							databaseModel.UpdateViewDetailsAsync(schemaObject.FullyQualifiedName, objectDetailModel, CancellationToken.None);
						}

						ToolTip =
							new ToolTipView
							{
								IsExtractDdlVisible = true,
								ScriptExtractor = databaseModel.ObjectScriptExtractor,
								DataContext = objectDetailModel
							};
						
						break;

					case OracleObjectType.Sequence:
						ToolTip = new ToolTipSequence(toolTipText, (OracleSequence)schemaObject);
						break;
				}
			}
			else
			{
				ToolTip =
					new ToolTipObject
					{
						DataContext = $"{objectReference.FullyQualifiedObjectName.ToLabel()} ({objectReference.Type.ToCategoryLabel()})"
					};
			}
		}
Example #27
0
		public void VisitPartitionReference(OraclePartitionReference partitionReference)
		{
			if (partitionReference.Partition == null)
			{
				return;
			}

			var databaseModel = partitionReference.Container.SemanticModel.DatabaseModel;
			var subPartition = partitionReference.Partition as OracleSubPartition;
			if (subPartition != null)
			{
				var subPartitionDetail = new SubPartitionDetailsModel();

				SetBasePartitionData(subPartitionDetail, partitionReference);

				databaseModel.UpdateSubPartitionDetailsAsync(subPartitionDetail, CancellationToken.None);
				ToolTip = new ToolTipPartition(subPartitionDetail);
			}
			else
			{
				var partitionDetail = new PartitionDetailsModel(16);

				SetBasePartitionData(partitionDetail, partitionReference);

				databaseModel.UpdatePartitionDetailsAsync(partitionDetail, CancellationToken.None);
				ToolTip = new ToolTipPartition(partitionDetail);
			}
		}
Example #28
0
		private void BuildSimpleToolTip(OracleSchemaObject schemaObject)
		{
			if (schemaObject == null)
			{
				return;
			}

			ToolTip =
				new ToolTipObject
				{
					DataContext = GetFullSchemaObjectToolTip(schemaObject)
				};
		}
Example #29
0
		public void VisitTableCollectionReference(OracleTableCollectionReference tableCollectionReference)
		{
			if (TryBuildSchemaTooltip(tableCollectionReference))
			{
				return;
			}

			ToolTip =
				new ToolTipObject
				{
					DataContext = $"{tableCollectionReference.FullyQualifiedObjectName} ({tableCollectionReference.Type.ToCategoryLabel()})"
				};
		}
        public void VisitColumnReference(OracleColumnReference columnReference)
        {
            if (TryBuildSchemaTooltip(columnReference))
            {
                return;
            }

            if (columnReference.ObjectNode == _terminal)
            {
                columnReference.ValidObjectReference?.Accept(this);
                return;
            }

            if (columnReference.ColumnDescription == null)
            {
                return;
            }

            var validObjectReference = columnReference.ValidObjectReference;
            var isSchemaObject       = validObjectReference.Type == ReferenceType.SchemaObject;
            var targetSchemaObject   = isSchemaObject ? validObjectReference.SchemaObject.GetTargetSchemaObject() : null;
            var databaseModel        = columnReference.Container.SemanticModel.DatabaseModel;

            if (isSchemaObject)
            {
                ColumnDetailsModel dataModel;
                switch (targetSchemaObject.Type)
                {
                case OracleObjectType.Table:
                case OracleObjectType.MaterializedView:
                    dataModel = BuildColumnDetailsModel(databaseModel, columnReference);
                    ToolTip   = columnReference.ColumnDescription.IsPseudocolumn
                                                        ? (IToolTip) new ToolTipViewColumn(dataModel)
                                                        : new ToolTipColumn(dataModel);

                    return;

                case OracleObjectType.View:
                    dataModel = BuildColumnDetailsModel(databaseModel, columnReference);
                    ToolTip   = new ToolTipViewColumn(dataModel);
                    return;
                }
            }

            var objectPrefix = columnReference.ObjectNode == null && !String.IsNullOrEmpty(validObjectReference.FullyQualifiedObjectName.Name)
                                ? $"{validObjectReference.FullyQualifiedObjectName.ToLabel()}."
                                : null;

            var qualifiedColumnName = isSchemaObject && String.Equals(targetSchemaObject.Type, OracleObjectType.Sequence)
                                ? null
                                : $"{objectPrefix}{columnReference.NormalizedName.ToSimpleIdentifier()}";

            var labelBuilder = new ToolTipLabelBuilder();

            labelBuilder.AddElement(qualifiedColumnName);
            labelBuilder.AddElement(columnReference.ColumnDescription.FullTypeName);
            labelBuilder.AddElement($"{(columnReference.ColumnDescription.Nullable ? null : "NOT ")}NULL");

            ToolTip = new ToolTipObject {
                DataContext = labelBuilder.ToString()
            };
        }
Example #31
0
        /// <summary>
        /// Creates a panel with the controls and dimensions as prescribed
        /// </summary>
        /// <param name="uiFormTab">The UIFormTab object</param>
        /// <returns>Returns the object containing the new panel</returns>
        private IPanelFactoryInfo CreateOnePanel(IUIFormTab uiFormTab)
        {
            if (uiFormTab.UIFormGrid != null)
            {
                return(CreatePanelWithGrid(uiFormTab.UIFormGrid));
            }
            IPanel            panel   = _controlFactory.CreatePanel(_controlFactory);
            IToolTip          toolTip = _controlFactory.CreateToolTip();
            GridLayoutManager manager = new GridLayoutManager(panel, _controlFactory);
            int rowCount = 0;
            int colCount = 0;

            colCount += uiFormTab.Count;
            foreach (UIFormColumn uiFormColumn in uiFormTab)
            {
                if (uiFormColumn.Count > rowCount)
                {
                    rowCount = uiFormColumn.Count;
                }
            }
            const int intNoOfLayoutGridColumnsPerPanel = 3;

            manager.SetGridSize(rowCount, colCount * intNoOfLayoutGridColumnsPerPanel);
            for (int col = 0; col < colCount; col++)
            {
                //Fixing the labels column widths
                manager.FixColumnBasedOnContents(col * intNoOfLayoutGridColumnsPerPanel);
            }

            ControlMapperCollection controlMappers = new ControlMapperCollection();

            controlMappers.BusinessObject = _currentBusinessObject;
            ITextBox temptb = _controlFactory.CreateTextBox();

            for (int row = 0; row < rowCount; row++)
            {
                manager.FixRow(row, temptb.Height);
            }
            manager.FixAllRowsBasedOnContents();
            GridLayoutManager.ControlInfo[,] controls =
                new GridLayoutManager.ControlInfo[rowCount, colCount *intNoOfLayoutGridColumnsPerPanel];
            int currentColumn = 0;

            foreach (UIFormColumn uiFormColumn in uiFormTab)
            {
                int currentRow = 0;
                foreach (UIFormField field in uiFormColumn)
                {
                    bool     isCompulsory;
                    ClassDef classDef = _currentBusinessObject.ClassDef;
                    PropDef  propDef  = (PropDef)field.GetPropDefIfExists(classDef);
                    if (propDef != null)
                    {
                        isCompulsory = propDef.Compulsory;
                    }
                    else
                    {
                        isCompulsory = false;
                    }
                    string labelCaption = field.GetLabel(classDef);
                    //                    BOPropCol boPropCol = _currentBusinessObject.Props;
                    //                    if (boPropCol.Contains(field.PropertyName))
                    //                    {
                    //                        IBOProp boProp = boPropCol[field.PropertyName];
                    //                        if (!boProp.HasDisplayName())
                    //                        {
                    //                            boProp.DisplayName = labelCaption;
                    //                        }
                    //                    }

                    IControlHabanero ctl          = CreateControl(field, _controlFactory);
                    bool             editable     = CheckIfEditable(field, ctl);
                    ILabel           labelControl = _controlFactory.CreateLabel(labelCaption, isCompulsory && editable);
                    controls[currentRow, currentColumn + 0] = new GridLayoutManager.ControlInfo(labelControl);

                    if (ctl is ITextBox && propDef != null)
                    {
                        if (propDef.PropertyType == typeof(bool))
                        {
                            ctl = _controlFactory.CreateCheckBox();
                        }
                        else if (propDef.PropertyType == typeof(string) && propDef.KeepValuePrivate)
                        {
                            ctl = _controlFactory.CreatePasswordTextBox();
                        }
                        else if (field.GetParameterValue("numLines") != null)
                        {
                            int numLines;
                            try
                            {
                                numLines = Convert.ToInt32(field.GetParameterValue("numLines"));
                            }
                            catch (Exception)
                            {
                                throw new InvalidXmlDefinitionException
                                          ("An error " + "occurred while reading the 'numLines' parameter "
                                          + "from the class definitions.  The 'value' "
                                          + "attribute must be a valid integer.");
                            }
                            if (numLines > 1)
                            {
                                ctl = _controlFactory.CreateTextBoxMultiLine(numLines);
                            }
                        }
                    }


                    if (ctl is ITextBox)
                    {
                        if (field.GetParameterValue("isEmail") != null)
                        {
                            string isEmailValue = (string)field.GetParameterValue("isEmail");
                            if (isEmailValue != "true" && isEmailValue != "false")
                            {
                                throw new InvalidXmlDefinitionException
                                          ("An error " + "occurred while reading the 'isEmail' parameter "
                                          + "from the class definitions.  The 'value' "
                                          + "attribute must hold either 'true' or 'false'.");
                            }

                            //bool isEmail = Convert.ToBoolean(isEmailValue);
                            //if (isEmail)
                            //{
                            //    ITextBox tb = (ITextBox) ctl;
                            //    tb.DoubleClick += _emailTextBoxDoubleClickedHandler;
                            //}
                        }
                    }
                    //if (ctl is IDateTimePicker)
                    //{
                    //    IDateTimePicker editor = (IDateTimePicker) ctl;
                    //    editor.Enter += DateTimePickerEnterHandler;
                    //}
                    //if (ctl is INumericUpDown)
                    //{
                    //    INumericUpDown upDown = (INumericUpDown) ctl;
                    //    upDown.Enter += UpDownEnterHandler;
                    //}



                    CheckGeneralParameters(field, ctl);

                    IControlMapper ctlMapper =
                        ControlMapper.Create
                            (field.MapperTypeName, field.MapperAssembly, ctl, field.PropertyName, !editable,
                            _controlFactory);
                    if (ctlMapper is ControlMapper)
                    {
                        ControlMapper controlMapper = (ControlMapper)ctlMapper;
                        controlMapper.SetPropertyAttributes(field.Parameters);
                    }
                    controlMappers.Add(ctlMapper);
                    ctlMapper.BusinessObject = _currentBusinessObject;

                    int colSpan = 1;
                    if (field.GetParameterValue("colSpan") != null)
                    {
                        try
                        {
                            colSpan = Convert.ToInt32(field.GetParameterValue("colSpan"));
                        }
                        catch (Exception)
                        {
                            throw new InvalidXmlDefinitionException
                                      ("An error " + "occurred while reading the 'colSpan' parameter "
                                      + "from the class definitions.  The 'value' " + "attribute must be a valid integer.");
                        }
                    }
                    colSpan = (colSpan - 1) * intNoOfLayoutGridColumnsPerPanel + 1; // must span label columns too

                    int rowSpan = 1;
                    if (field.GetParameterValue("rowSpan") != null)
                    {
                        try
                        {
                            rowSpan = Convert.ToInt32(field.GetParameterValue("rowSpan"));
                        }
                        catch (Exception)
                        {
                            throw new InvalidXmlDefinitionException
                                      ("An error " + "occurred while reading the 'rowSpan' parameter "
                                      + "from the class definitions.  The 'value' " + "attribute must be a valid integer.");
                        }
                    }
                    if (rowSpan == 1)
                    {
                        manager.FixRow(currentRow, ctl.Height);
                    }
                    controls[currentRow, currentColumn + 1] = new GridLayoutManager.ControlInfo(ctl, rowSpan, colSpan);
                    currentRow++;
                    string toolTipText = field.GetToolTipText(classDef);
                    if (!String.IsNullOrEmpty(toolTipText))
                    {
                        toolTip.SetToolTip(labelControl, toolTipText);
                        toolTip.SetToolTip(ctl, toolTipText);
                    }
                    //Hack brett trying to fix prob with dynamic properties
                    ctl.Width = 100;
                }

                currentColumn += 3;
            }
            for (int i = 0; i < rowCount; i++)
            {
                for (int j = 0; j < colCount * intNoOfLayoutGridColumnsPerPanel; j++)
                {
                    if (controls[i, j] == null)
                    {
                        manager.AddControl(null);
                    }
                    else
                    {
                        manager.AddControl(controls[i, j]);
                        controls[i, j].Control.TabIndex = rowCount * j + i;
                    }
                }
            }
            for (int col = 0; col < colCount; col++)
            {
                if (uiFormTab[col].Width > -1)
                {
                    //Fix width of the control column e.g. textbox or combobox.
                    manager.FixColumn(col * intNoOfLayoutGridColumnsPerPanel + 1, uiFormTab[col].Width - manager.GetFixedColumnWidth(col * intNoOfLayoutGridColumnsPerPanel));
                }
                manager.FixColumn(col * intNoOfLayoutGridColumnsPerPanel + 2, 15);
            }

            panel.Height = manager.GetFixedHeightIncludingGaps();
            panel.Width  = manager.GetFixedWidthIncludingGaps();
            IPanelFactoryInfo panelFactoryInfo = new PanelFactoryInfo(panel, controlMappers, _uiDefName, _firstControl);

            panelFactoryInfo.MinimumPanelHeight = panel.Height;
            panelFactoryInfo.MinumumPanelWidth  = panel.Width;
            panelFactoryInfo.ToolTip            = toolTip;
            panelFactoryInfo.PanelTabText       = uiFormTab.Name;
            panelFactoryInfo.UIForm             = _uiForm;
            panelFactoryInfo.UiFormTab          = uiFormTab;
            return(panelFactoryInfo);
        }