The Source for Java Technology Collaboration
User: Password:
Register | Login help    

Search

Online Books:
java.net on MarkMail:


Beans Binding 0.6 Release Available

Posted by shan_man on June 21, 2007 at 9:04 AM PDT

Just a short note to announce that I've posted the 0.6 release of the Beans Binding project at http://beansbinding.dev.java.net

In this release:

  • Improved JTable support
  • More default converters
  • Name your Bindings
  • Compile-time type safety for setting Parameters
  • A handful of method renames

Full details, straight from the release notes:

API Changes/Additions

  • Binding.addBinding/removeBinding/getBindings have been renamed to the more descriptive Binding.addChildBinding/removeChildBinding/getChildBindings

  • Binding.setSourcePath/getSourcePath have been renamed to the more appropriate Binding.setSourceExpression/getSourceExpression

  • To enforce compile-time type safety, the Object varargs parameter has been removed from all constructors and methods in Binding and BindingContext. You must now call setValue directly. To allow for method chaining, setValue now returns the Binding. As an example, replace this binding:

    
      Binding b = new Binding(source, "${property}", target, "property",
                              Parameter1, param1Value, Parameter2, param2Value);
    
    

    with this:

    
      Binding b = new Binding(source, "${property}", target, "property");
      b.setValue(Parameter1, param1Value).setValue(Parameter2, param2Value);
    
    

  • Some Binding and BindingContext methods were updated to throw the more appropriate IllegalArgumentException (rather than IllegalStateException) for certain conditions.

  • Binding now has a name property. The ability to name a binding assists in debugging. Its main goal, however, is to make it possible to fetch bindings by name. This will show its full utility with future changes making it easier to validate and then commit or revert bindings as a group.

    To support naming a binding, the following API additions have been made to Binding:

    • Constructors that take a String name parameter
    • void setName(String name)
    • String getName()
    • addChildBinding methods that take a String name parameter
    • Binding getChildBinding(String name)

    In addition, the following additions have been made to BindingContext:

    • addBinding methods that take a String name parameter
    • Binding getBinding(String name)

  • Added a Parameter to control the editability of a JTable when it is the target of a binding. A new EditableParameter has been added to SwingBindingSupport to control this. It can be used on a top-level binding to control the editability of the entire JTable, and/or on the binding's individual child bindings to control editability of individual columns. For example, to make all columns non-editable, except for the first:

    
      Binding b = new Binding(list, null, table, "elements");
      // whole table is non-editable
      b.setValue(SwingBindingSupport.EditableParameter, false);
      b.addChildBinding("${firstName}, null)
          .setValue(SwingBindingSupport.TableColumnParameter, 0)
          // this column IS editable
          .setValue(SwingBindingSupport.EditableParameter, true);
      b.addChildBinding("${lastName}, null)
          .setValue(SwingBindingSupport.TableColumnParameter, 1);
    
    

Issues Resolved

  • 2: Need converters between various types and String
  • 5: JTable binding support doesn't support sorting and filtering

Other

The JavaDoc in Binding and SwingBindingSupport has been updated to reflect the change to use EL for the source "property".

Related Topics >> Java Desktop      
Comments
Comments are listed in date ascending order (oldest first)