private void updateTypeFieldsVisibility(Column column, ColumnPropertiesEditionPart basePart) {
   if (column.getType() instanceof TypeInstance) {
     TypeInstance typeInstance = (TypeInstance) column.getType();
     if (typeInstance.getNativeType() != null) {
       NativeTypeKind nativeTypeKind = typeInstance.getNativeType().getSpec();
       boolean lengthVisible =
           (nativeTypeKind == NativeTypeKind.LENGTH
               || nativeTypeKind == NativeTypeKind.LENGTH_AND_PRECISION);
       boolean precisionVisible = (nativeTypeKind == NativeTypeKind.LENGTH_AND_PRECISION);
       boolean literalsVisible = (nativeTypeKind == NativeTypeKind.ENUM);
       basePart.updateTypeFields(lengthVisible, precisionVisible, literalsVisible);
     }
   }
 }
  @Override
  public void updateSemanticModel(IPropertiesEditionEvent event) {
    Column columnObject = (Column) semanticObject;

    if (DatabaseViewsRepository.Column.Properties.NullablePkAndUnique.primaryKey
        == event.getAffectedEditor()) {
      if (Boolean.TRUE.equals(event.getNewValue())) {
        columnObject.addToPrimaryKey();
      } else {
        columnObject.removeFromPrimaryKey();
      }
    }
    if (DatabaseViewsRepository.Column.Properties.NullablePkAndUnique.unique
        == event.getAffectedEditor()) {
      if (Boolean.TRUE.equals(event.getNewValue())) {
        columnObject.addToUniqueIndex();
      } else {
        columnObject.removeFromUniqueIndex();
      }
    }
    super.updateSemanticModel(event);
  }