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

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

public class VaadinPluginMapPropertyRenderer extends VaadinPropertyRenderer<PluginMapProperty, Object> {
   @Override
   public Field<Object> createField(PropertyAdapter<PluginMapProperty> propertyAdapter) {
      PluginMapProperty prop = (PluginMapProperty)propertyAdapter.getFieldAnnotation();
      MedusaPluginMapField field = new MedusaPluginMapField(propertyAdapter);
      field.setInfo(
         renderDescription(
            propertyAdapter.getDisplayName(), prop.description(), null, null, propertyAdapter.getRequiredLicenseTags(), propertyAdapter.getPropertyName()
         )
      );
      field.setRequired(!prop.optional());
      return field;
   }
}
