However, I have little success in getting the data binding to work. I think the documentation is limited on the google website (http://download.instantiations.com/D2WBDoc/continuous/latest/docs/html/features/swt/data_binding/jface_bindings.html).
I've tried to create a TableView data binding using WindowBuilder. I get the following error when I run the application:
Exception in thread "main" java.lang.VerifyError: (class: org/eclipse/jface/databinding/viewers/ObservableMapLabelProvider, method: dispose signature: ()V) Illegal use of nonvirtual function call
at myapplication.initDataBindings(MyApplication.java:306
this section looks as follows (generated by WindowBuilder):
- Code: Select all
protected DataBindingContext initDataBindings() {
DataBindingContext bindingContext = new DataBindingContext();
//
ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
messagesTableViewer.setContentProvider(listContentProvider);
//
IObservableMap[] observeMaps = PojoObservables.observeMaps(listContentProvider.getKnownElements(), Message.class, new String[]{"level", "message", "class"});
messagesTableViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps));
//
WritableList writableList = new WritableList(messagesModel.getMessages(), Message.class);
messagesTableViewer.setInput(writableList);
//
return bindingContext;
}
The MessagesModel and Message class look as follows:
- Code: Select all
public class MessagesModel {
ArrayList<Message> messages = new ArrayList<Message>();
public MessagesModel() {
}
public ArrayList<Message> getMessages() {
return messages;
}
}
public class Message {
String level;
String message;
public Message(String level, String message) {
this.level = level;
this.message = message;
}
}
What am I missing?