Webサイト(Vaadinテーブル)で多くのテーブルを使用していますが、顧客がテーブル内で編集できるようにしておいただけです。さて、私はそれがテーブルで可能であることを知っています(私はすでに働いています)が、私はGridの編集メカニズムのようによく似ています。 Vaadin TableをVaadin Gridに変換する簡単な方法はありますか?グリッドは置換の低下ではないので、変換作業が必要になることはわかっています。人々がそれを見つけたことがどれほど辛いか、またそのような変換を行うためのドキュメンテーションがあるかどうか疑問に思うだけです。VaadinテーブルをVaadinグリッドに変換する
は、ここに私たちの通常のテーブルの使い方です:
public final class ReplenishmentOrderMgmtView extends VerticalLayout implements View {
private final Table table;
private static final String[] DEFAULT_COLLAPSIBLE = {
"contactFirstName",
"contactLastName",
"supplierName",
"carrier", "carrierService", "trackingNumber"
};
private static final Object[] VISIBLE_COLUMNS = {
"barcode",
"contactUserId",
"contactFirstName",
"contactLastName",
"PO",
"orderId",
"cellId",
"cellName",
"wmsItem",
"description",
"supplierId",
"supplierName",
"statusDesc",
"resizedBinQty",
"expectedOnDockDate",
"shipQuantity",
"receivedQty",
"lastReceiptDate",
"carrier",
"carrierService",
"trackingNumber",
"creationDate"
};
private static final String[] COLUMN_NAMES = {
"Barcode",
"Contact User",
"First Name",
"Last Name",
"PO Number",
"Replenishment Order Id",
"Cell Id",
"Cell Name",
"Part",
"Description",
"Supplier Id",
"Supplier Name",
"Status",
"Resized Bin Qty",
"Expected On Dock Date",
"Ship Quantity",
"Received Qty",
"Last Receipt Date",
"Carrier",
"Carrier Service",
"Tracking Number",
"Creation Date"
};
private Table buildTable() {
final Table table = new Table();
table.setSizeFull();
table.addStyleName(ValoTheme.TABLE_BORDERLESS);
table.addStyleName(ValoTheme.TABLE_NO_HORIZONTAL_LINES);
table.addStyleName(ValoTheme.TABLE_COMPACT);
table.setSelectable(true);
table.setColumnCollapsingAllowed(true);
table.setColumnReorderingAllowed(true);
updateList(table);
table.setSortContainerPropertyId("creationDate");
table.setSortAscending(true);
table.setColumnHeaders(COLUMN_NAMES);
// Allow dragging items to the reports menu
// table.setDragMode(TableDragMode.MULTIROW);
table.setMultiSelect(false);
table.addActionHandler(new ReplenishmentOrdersActionHandler());
table.addValueChangeListener(event -> this.selectItemFromTable());
table.setImmediate(true);
return table;
}
}
もいくつかは、そこに関わるバインディングがある - 私のデータソースは、Java Beanです。明らかに、私はテーブル自体に影響を与えるコードを含めるだけです。どんなアドバイスや意見も高く評価されます。