|
|
@@ -85,7 +85,26 @@ public class GridDragSource<T> extends DragSourceExtension<Grid<T>> { |
|
|
|
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); |
|
|
@@ -148,24 +167,6 @@ public class GridDragSource<T> extends DragSourceExtension<Grid<T>> { |
|
|
|
.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 |