package com.airlock.iam.plugin.configeditor.rendering;

import com.airlock.iam.plugin.api.annotation.property.BooleanProperty;
import com.airlock.iam.plugin.configeditor.data.PropertyAdapter;
import com.airlock.iam.plugin.configeditor.field.MedusaCheckBoxField;
import com.vaadin.v7.ui.Field;

public class VaadinBooleanPropertyRenderer extends VaadinPropertyRenderer<BooleanProperty, Boolean> {
   @Override
   public Field<Boolean> createField(PropertyAdapter<BooleanProperty> propertyAdapter) {
      BooleanProperty prop = (BooleanProperty)propertyAdapter.getFieldAnnotation();
      MedusaCheckBoxField field = new MedusaCheckBoxField(propertyAdapter);
      field.setInfo(
         renderDescription(
            propertyAdapter.getDisplayName(),
            prop.description(),
            null,
            prop.defaultValue(),
            propertyAdapter.getRequiredLicenseTags(),
            propertyAdapter.getPropertyName()
         )
      );
      field.setRequired(!prop.optional());
      return field;
   }
}
