private static void setTextFieldBehaviour(TextInputControl text, boolean useDefaultValue, ObservableStringValue defaultValue, StringProperty customValue) {
        if (useDefaultValue) {
            customValue.unbind();
            text.textProperty().bind(defaultValue);
        } else {
            text.textProperty().unbind();
            text.setText(customValue.get());
            customValue.bind(text.textProperty());
        }
    }
Creates a new DefaultStringItem.
<p>
While the CheckBox is checked, the TextInput will be disabled, and the
property will always have the default value. <br>
While the CheckBox is un-checked, the TextInput will be enabled, and the
property will always have the TextInput's current value.
<p>
Upon construction, the editor decides whether to check the default box by
comparing the property value to the default value. If they match, or the
property value is {@code null}, the CheckBox will be checked.

@param label the label text
@param defaultValue the default value
@param value the property to be edited
@param tooltip the tooltip
@param decorator the editor decorator
tool-parent/tool-propertyeditor/src/main/java/com/speedment/tool/propertyeditor/item/AbstractTextItem.java