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

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

public class VaadinFilePropertyRenderer extends VaadinPropertyRenderer<FileProperty, String> {
   @Override
   public Field<String> createField(PropertyAdapter<FileProperty> propertyAdapter) {
      FileProperty prop = (FileProperty)propertyAdapter.getFieldAnnotation();
      MedusaTextField field = new MedusaTextField(propertyAdapter);
      field.setInfo(
         renderDescription(
            propertyAdapter.getDisplayName(),
            prop.description(),
            prop.exampleValues(),
            prop.defaultValue(),
            propertyAdapter.getRequiredLicenseTags(),
            propertyAdapter.getPropertyName()
         )
      );
      field.setRequired(!prop.optional());
      return field;
   }
}
