Bug 167450 [DataBinding] Get rid of bind support factory magic
I finally realized that we don't need that other magic factory. I'll move fillBindSpecDefaults() and the methods it calls (createConverter, createValidator etc) to a new class DefaultBindSpec. Clients who want default validators and converters created for them just create a DefaultBindSpec as opposed to a (rather empty) BindSpec. I will also move the early type checking into DefaultBindSpec to make it optional as well.
tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/scenarios/PropertyScenarios.java
public void testScenario13() {
        Text text = new Text(getComposite(), SWT.BORDER);
        
        getDbc().bdValue(SWTObservables.observeText(text, SWT.FocusOut), BeansObservables.observeValue(adventure, "name"), null);
        
        // happe
        
        Strg adventureName = adventure.getName();
        assertEquals(adventureName, text.getText());
        enterText(text, "foobar");
        
        
        assertEquals("foobar", adventure.getName());
        adventure.setName("barfoo");
        
        
        assertEquals("barfoo", text.getText());
    }
    public void testScenario14() {
        Text t1 = new Text(getComposite(), SWT.BORDER);
        Text t2 = new Text(getComposite(), SWT.BORDER);
  
        getDbc().bdValue(SWTObservables.observeText(t1, SWT.Modify), BeansObservables.observeValue(adventure, "name"), null);
        getDbc().bdValue(SWTObservables.observeText(t2, SWT.Modify), BeansObservables.observeValue(adventure, "name"), null);
        
        fal t[] counter = { 0 };
        
        IObservableValue uv = BeansObservables.observeValue(adventure, "name");
        
        uv.addChangeListener(new IChangeListener() {