super(target);
// Create drag data generator
- dragDataGenerator = this::generateDragData;
+ dragDataGenerator = new DataGenerator<T>() {
+ /**
+ * Drag data generator. Appends drag data to row data json if generator
+ * function(s) are set by the user of this extension.
+ *
+ * @param item
+ * Row item for data generation.
+ * @param jsonObject
+ * Row data in json format.
+ */
+ @Override
+ public void generateData(Object item, JsonObject jsonObject) {
+ JsonObject generatedValues = Json.createObject();
+
+ generatorFunctions.forEach((type, generator) -> generatedValues
+ .put(type, generator.apply((T) item)));
+
+ jsonObject.put(GridDragSourceState.JSONKEY_DRAG_DATA, generatedValues);
+ }
+ };
// Add drag data generator to Grid
target.getDataCommunicator().addDataGenerator(dragDataGenerator);
.collect(Collectors.toList());
}
- /**
- * Drag data generator. Appends drag data to row data json if generator
- * function(s) are set by the user of this extension.
- *
- * @param item
- * Row item for data generation.
- * @param jsonObject
- * Row data in json format.
- */
- private void generateDragData(T item, JsonObject jsonObject) {
- JsonObject generatedValues = Json.createObject();
-
- generatorFunctions.forEach((type, generator) -> generatedValues
- .put(type, generator.apply(item)));
-
- jsonObject.put(GridDragSourceState.JSONKEY_DRAG_DATA, generatedValues);
- }
-
/**
* Sets a generator function for customizing drag data. The generated value
* will be accessible using the same {@code type} as the generator is set