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); } }
// 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; } }
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() }; }
public void RemoveToolTip(IToolTip toolTip) { if (currentToolTip == toolTip) { currentToolTip = null; SetToolTipActive(false); } }
private void SetToolTip(UIFormField formField, IControlHabanero control) { string toolTipText = formField.GetToolTipText(); IToolTip toolTip = ControlFactory.CreateToolTip(); if (!String.IsNullOrEmpty(toolTipText)) { toolTip.SetToolTip(control, toolTipText); } }
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) }; }
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); }
//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 }; }
// 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 }; }
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() }; }
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 }; }
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() }; }
public void ShowToolTip(IToolTip m_ToolTip) { MoveToPointer(); m_ToolTipDescriptions.text = m_ToolTip.Description; m_ToolTipTransform.gameObject.SetActive(true); }
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); } }
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() }; }
/// <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); }