@Override protected void registerDropTargetRpc() { registerRpc((TreeGridDropTargetRpc) (types, data, dropEffect, rowKey, depth, collapsed, dropLocation, mouseEventDetails) -> { // Create a linked map that preserves the order of types Map<String, String> dataPreserveOrder = new LinkedHashMap<>(); types.forEach(type -> dataPreserveOrder.put(type, data.get(type))); T dropTargetRow = getParent().getDataCommunicator().getKeyMapper() .get(rowKey); TreeGridDropEvent<T> event = new TreeGridDropEvent<>(getParent(), dataPreserveOrder, DropEffect.valueOf(dropEffect.toUpperCase(Locale.ROOT)), getUI().getActiveDragSource(), dropTargetRow, dropLocation, mouseEventDetails, depth, collapsed); fireEvent(event); }); }
private void registerTreeGridRpc() { registerRpc((NodeCollapseRpc) (rowKey, rowIndex, collapse, userOriginated) -> { T item = getDataCommunicator().getKeyMapper().get(rowKey); if (collapse && getDataCommunicator().isExpanded(item)) { getDataCommunicator().collapse(item, rowIndex); fireCollapseEvent( getDataCommunicator().getKeyMapper().get(rowKey), userOriginated); } else if (!collapse && !getDataCommunicator().isExpanded(item)) { getDataCommunicator().expand(item, rowIndex); fireExpandEvent( getDataCommunicator().getKeyMapper().get(rowKey), userOriginated); } }); registerRpc((FocusParentRpc) (rowKey, cellIndex) -> { Integer parentIndex = getDataCommunicator().getParentIndex( getDataCommunicator().getKeyMapper().get(rowKey)); if (parentIndex != null) { getRpcProxy(FocusRpc.class).focusCell(parentIndex, cellIndex); } }); }