Remora Bindings
Remora Bindings is a Java library that offers two-way data bindings that glue UI widgets to data sources. Contrary to most other binding APIs, Remora Bindings does not offer any built-in change notification or reactivity and instead relies on transparent reactivity offered by libraries like Hookless.
Download
Get Remora Bindings from Maven Central:
<dependency>
<groupId>com.machinezoo.remorabindings</groupId>
<artifactId>remorabindings</artifactId>
<version>0.2.2</version>
</dependency>Or clone sources from GitHub or Bitbucket. Don't forget to configure your build for Java 17+. Sources and binaries are distributed under Apache License 2.0.
If your project is a Java module,
add the following declaration to your module-info.java:
requires com.machinezoo.remorabindings;
Usage
At its core, binding is just an interface with two methods: get() and set().
You can bind to anything, but in this simple example, we will bind to a Map:
record Key(String name, int id) {}
var map = new HashMap<Key, String>();
var binding = OptionalStringBinding.bind(map, new Key("xyz", 123));
System.out.println(binding.get());
binding.set(Optional.of("abc"));
System.out.println(binding.get());The above code should produce this output:
Optional.empty Optional[abc]
There are many kinds of bindings that can be transformed in many ways.
See current source code.
There are some built-in binding sources (other than Map). See ReactivePreferencesBindings
and SiteFragmentBindings.
Next steps
- Download Remora Bindings from Maven Central if you haven't done so yet.
- There is no javadoc documentation yet. See source code for now.
- Report an issue or submit PR on GitHub or Bitbucket if something is wrong or poorly documented.