[Table Designer] Add apis to support computed column (#1495)

This commit is contained in:
Hai Cao
2022-05-23 15:41:07 -07:00
committed by GitHub
parent 62d3cdc99a
commit bc1b60fa87
7 changed files with 266 additions and 1 deletions

View File

@@ -43,6 +43,10 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner
public const string IsIdentity = "isIdentity";
public const string IdentityIncrement = "identityIncrement";
public const string IdentitySeed = "identitySeed";
public const string IsComputed = "isComputed";
public const string ComputedFormula = "computedFormula";
public const string IsComputedPersisted = "isComputedPersisted";
public const string IsComputedPersistedNullable = "isComputedPersistedNullable";
public const string CanBeDeleted = "canBeDeleted";
public const string GeneratedAlwaysAs = "generatedAlwaysAs";
public const string IsHidden = "isHidden";

View File

@@ -31,6 +31,14 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner.Contracts
public InputBoxProperties IdentityIncrement { get; set; } = new InputBoxProperties();
public CheckBoxProperties IsComputed { get; set; } = new CheckBoxProperties();
public InputBoxProperties ComputedFormula { get; set; } = new InputBoxProperties();
public CheckBoxProperties IsComputedPersisted { get; set; } = new CheckBoxProperties();
public CheckBoxProperties IsComputedPersistedNullable { get; set; } = new CheckBoxProperties();
public DropdownProperties GeneratedAlwaysAs { get; set; } = new DropdownProperties();
public CheckBoxProperties IsHidden { get; set; } = new CheckBoxProperties();

View File

@@ -507,6 +507,18 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner
case TableColumnPropertyNames.DefaultConstraintName:
column.DefaultConstraintName = GetStringValue(newValue);
break;
case TableColumnPropertyNames.IsComputed:
column.IsComputed = GetBooleanValue(newValue);
break;
case TableColumnPropertyNames.ComputedFormula:
column.ComputedFormula = GetStringValue(newValue);
break;
case TableColumnPropertyNames.IsComputedPersisted:
column.IsComputedPersisted = GetBooleanValue(newValue);
break;
case TableColumnPropertyNames.IsComputedPersistedNullable:
column.IsComputedPersistedNullable = GetBooleanValue(newValue);
break;
default:
break;
}
@@ -816,6 +828,14 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner
columnViewModel.IdentityIncrement.Enabled = column.CanEditIdentityValues;
columnViewModel.IdentityIncrement.Value = column.IdentityIncrement?.ToString();
columnViewModel.CanBeDeleted = column.CanBeDeleted;
columnViewModel.IsComputed.Enabled = column.CanEditIsComputed;
columnViewModel.IsComputed.Checked = column.IsComputed;
columnViewModel.ComputedFormula.Enabled = column.CanEditComputedFormula;
columnViewModel.ComputedFormula.Value = column.ComputedFormula;
columnViewModel.IsComputedPersisted.Enabled = column.CanEditIsComputedPersisted;
columnViewModel.IsComputedPersisted.Checked = column.IsComputedPersisted == true;
columnViewModel.IsComputedPersistedNullable.Enabled = column.CanEditIsComputedPersistedNullable;
columnViewModel.IsComputedPersistedNullable.Checked = column.IsComputedPersistedNullable == true;
columnViewModel.GeneratedAlwaysAs.Value = ColumnGeneratedAlwaysAsTypeUtil.Instance.GetName(column.GeneratedAlwaysAs);
columnViewModel.GeneratedAlwaysAs.Values = ColumnGeneratedAlwaysAsTypeUtil.Instance.DisplayNames;
columnViewModel.GeneratedAlwaysAs.Enabled = column.CanEditGeneratedAlwaysAs;
@@ -1004,6 +1024,50 @@ namespace Microsoft.SqlTools.ServiceLayer.TableDesigner
{
Title = SR.TableColumnDefaultConstraintNamePropertyTitle
}
},
new DesignerDataPropertyInfo()
{
PropertyName = TableColumnPropertyNames.IsComputed,
Description = SR.TableColumnIsComputedDescription,
Group = SR.TableColumnComputedGroupTitle,
ComponentType = DesignerComponentType.Checkbox,
ComponentProperties = new CheckBoxProperties()
{
Title = SR.TableColumnIsComputedTitle
}
},
new DesignerDataPropertyInfo()
{
PropertyName = TableColumnPropertyNames.ComputedFormula,
Description = SR.TableColumnComputedFormulaDescription,
Group = SR.TableColumnComputedGroupTitle,
ComponentType = DesignerComponentType.Input,
ComponentProperties = new InputBoxProperties()
{
Title = SR.TableColumnComputedFormulaTitle
}
},
new DesignerDataPropertyInfo()
{
PropertyName = TableColumnPropertyNames.IsComputedPersisted,
Description = SR.TableColumnIsComputedPersistedDescription,
Group = SR.TableColumnComputedGroupTitle,
ComponentType = DesignerComponentType.Checkbox,
ComponentProperties = new CheckBoxProperties()
{
Title = SR.TableColumnIsComputedPersistedTitle
}
},
new DesignerDataPropertyInfo()
{
PropertyName = TableColumnPropertyNames.IsComputedPersistedNullable,
Description = SR.TableColumnIsComputedPersistedNullableDescription,
Group = SR.TableColumnComputedGroupTitle,
ComponentType = DesignerComponentType.Checkbox,
ComponentProperties = new CheckBoxProperties()
{
Title = SR.TableColumnIsComputedPersistedNullableTitle
}
}
});
view.ColumnTableOptions.CanAddRows = true;