 |
June 2007 Archives
Beans Binding 0.6.1 Release Available
Posted by shan_man on June 22, 2007 at 02:41 PM | Permalink
| Comments (6)
Taking into consideration the feedback that I've received since yesterday's blog on the 0.6 release of Beans Binding,
I've just released 0.6.1 with simpler and more intuitive method names and constants. It's available at
http://beansbinding.dev.java.net
Full details, straight from the release notes:
API Changes/Additions
UpdateStrategy.READ_FROM_SOURCE has been renamed to the shorter
UpdateStrategy.READ
TextChangeStategy is now a top-level enum. In addition, the values
CHANGE_ON_TYPE, CHANGE_ON_ACTION_OR_FOCUS_LOST
and CHANGE_ON_FOCUS_LOST
have been shortened to ON_TYPE,
ON_ACTION_OR_FOCUS_LOST, ON_FOCUS_LOST.
Binding.Parameter has been renamed to Binding.ParameterKey and
Binding.setValue/getValue have been given the more appropriate names
Binding.putParameter/getParameter.
All Swing ParameterKeys are now in a top-level ParameterKeys class.
They've been renamed as appropriate to reflect the fact that they are constants.
A few have also been shortened.
SwingBindingSupport has been removed. Documentation for Swing binding
is now in the package-level documentation.
To see how some of these changes affect you, let's look at two examples:
Before:
Binding b = new Binding(list, null, table, "elements");
b.addChildBinding("${firstName}, null)
.setValue(SwingBindingSupport.TableColumnParameter, 0)
.setValue(SwingBindingSupport.TableColumnClassParameter, String.class);
After:
Binding b = new Binding(list, null, table, "elements");
b.addChildBinding("${firstName}, null)
.putParameter(ParameterKeys.COLUMN, 0)
.putParameter(ParameterKeys.COLUMN_CLASS, String.class);
Likewise, before:
Binding b = new Binding(object, "${property}", textField, "text");
b.setValue(SwingBindingSupport.TextChangeStrategyParameter,
SwingBindingSupport.TextChangeStrategy.CHANGE_ON_TYPE);
After:
Binding b = new Binding(object, "${property}", textField, "text");
binding.putParameter(ParameterKeys.TEXT_CHANGE_STRATEGY,
TextChangeStrategy.ON_TYPE);
Beans Binding 0.6 Release Available
Posted by shan_man on June 21, 2007 at 09:04 AM | Permalink
| Comments (7)
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".
|