private final Map<ElementHandler, Callback<Void, FXFormNode>> USER_MAP = new LinkedHashMap<ElementHandler, Callback<Void, FXFormNode>>();
public DefaultFactoryProvider() {
// register default delegates
DEFAULT_MAP.put(new TypeFieldHandler(StringProperty.class), new TextFieldFactory());
DEFAULT_MAP.put(new TypeFieldHandler(BooleanProperty.class), new CheckboxFactory());
DEFAULT_MAP.put(new EnumHandler(), new EnumChoiceBoxFactory());
DEFAULT_MAP.put(new TypeFieldHandler(IntegerProperty.class), new TextFieldFactory());
DEFAULT_MAP.put(new TypeFieldHandler(LongProperty.class), new TextFieldFactory());
DEFAULT_MAP.put(new TypeFieldHandler(DoubleProperty.class), new TextFieldFactory());
DEFAULT_MAP.put(new TypeFieldHandler(ListProperty.class), new TableViewFactory());
DEFAULT_MAP.put(new WrappedTypeHandler(BigDecimal.class), new TextFieldFactory());
DEFAULT_MAP.put(new WrappedTypeHandler(Color.class), new ColorPickerFactory());
DEFAULT_MAP.put(new WrappedTypeHandler(LocalDate.class), new DatePickerFactory());
DEFAULT_MAP.put(new TypeFieldHandler(ReadOnlyStringProperty.class), new LabelFactory());
DEFAULT_MAP.put(new TypeFieldHandler(ReadOnlyBooleanProperty.class), new CheckboxFactory());
DEFAULT_MAP.put(new TypeFieldHandler(ReadOnlyIntegerProperty.class), new LabelFactory());
DEFAULT_MAP.put(new TypeFieldHandler(ReadOnlyLongProperty.class), new LabelFactory());
DEFAULT_MAP.put(new TypeFieldHandler(ReadOnlyDoubleProperty.class), new LabelFactory());
}