@Override
    public void fill(Parameter parameter, Type type, Annotation[] annotations)
    {
        for (Annotation annotation : annotations)
        {
            if (annotation instanceof Label)
            {
                // override when using explicit label
                parameter.offer(Properties.VALUE_LABEL, ((Label)annotation).value());
                return;
            }
        }
        if (parameter.getProperty(Properties.VALUE_LABEL) != null)
        {
            return; // already set
        }
        LabelProvider provider = parameter.getProperty(Properties.LABEL_PROVIDER);
        parameter.offer(Properties.VALUE_LABEL, provider.getLabel());
    }