0
DragDetectListener
を追加してdoCommand
を実行しました。それは本当の結果をもたらしますが、カラムはフリーズしません。 私のコードは次のとおりです。選択層以外の層を使用せずにナットテーブルの列をフリーズする方法
bodyDataLayer = new DataLayer(bodyDataProvider);
GlazedListsEventLayer<IzSearchResultRowData> glazedListsEventLayer = new GlazedListsEventLayer<IzSearchResultRowData>(bodyDataLayer, eventList);
bodyLayer = new DefaultBodyLayerStack(glazedListsEventLayer);
ColumnOverrideLabelAccumulator bodyLabelAccumulator = new ColumnOverrideLabelAccumulator(bodyDataLayer);
bodyDataLayer.setConfigLabelAccumulator(bodyLabelAccumulator);
// Column header layer
selectionLayer = bodyLayer.getSelectionLayer();
DataLayer columnHeaderDataLayer = new DefaultColumnHeaderDataLayer(bulkDataManager);
columnHeaderDataLayer.setRowHeightByPosition(0, 35);
final FreezeLayer freezeLayer = new FreezeLayer(selectionLayer);
final CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(
freezeLayer, bodyLayer.getViewportLayer(), selectionLayer);
ColumnHeaderLayer columnHeaderLayer = new ColumnHeaderLayer(columnHeaderDataLayer, compositeFreezeLayer, selectionLayer);
別の事: 私は位置が選択層を介して座標取得しています
natTable.addDragDetectListener(new DragDetectListener() {
@Override
public void dragDetected(DragDetectEvent paramDragDetectEvent) {
boolean b = natTable.doCommand(new FreezeColumnCommand(glazedListsGridLayer.getcompositeFreezeLayer(), 0));
}
});
は層スタックのコードを追加します。フリーズコマンドを実行しているとき natTable.doCommand(新しいFreezeColumnCommand(glazedListsGridLayer.getSelectionLayer()、0));
それは誤った結果を与えます。
レイヤースタックのコードを追加する: –
私が示唆したことを試しましたか?位置座標を指定するレイヤー上のコマンドを起動しますか? SelectionLayerはFreezeLayerの下にあります。そのような位置を指定すると、コマンドが処理されないという問題が起きている可能性があります。 –
このように試してみると、falseを返す: glazedListsGridLayer.getSelectionLayer()。doCommand(new FreezeColumnCommand(glazedListsGridLayer.getcompositeFreezeLayer()、0)); –