問題タブ [nattable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - カスタム コンパレータを使用した NatTable の並べ替え
参照点として (509_SortHeaderLayer.java) の例を見ていました。
以下の例に示すように、SortedList にカスタム コンパレータを直接追加します。ただし、デバッガーで列をクリックすると、カスタム コンパレーターは、compare() メソッドの最初の行で設定したブレークポイントに到達しません。
コンパレーターを AbstractRegistryConfiguration として追加すると、期待どおりに動作します (列をクリックするとブレークポイントに到達します)。
SortedLists コンストラクターでコンパレーターを設定しても期待どおりに動作しないのはなぜですか? いくつかの一般的なコード スニペットを以下に示します。
java - NatTable - 列を非表示にしたパーセンテージ サイジング
列のパーセンテージ サイズ変更を使用して、テーブルに親の幅を強制的に適用したいと考えています。
setColumnPercentageSizing() メソッドは非表示の列を除外していないようで、幅を正しく計算しないため、デフォルトで列を非表示にすると、これは機能しません。
私のコードでこれを調整する簡単な方法はありますか?
例:
アップデート
理想的ではありませんが、これは私がそれに到達できる最も近いものです
更新 2
ここに、さまざまな組み合わせで試したいくつかの異なるものがあります。テーブルにデータが動的に入力された後、列を非表示にしたままにするものはないようです。
nattable - NatTable - 並べ替え時の奇妙な動作
http://www.eclipse.org/nattable/documentation.php?page=sorting と例 6031_GlazedListsFilterExample.javaに基づいたソート/フィルター機能を備えた nattable があり ます
最初、私のテーブルには行がありません。
シナリオ 1:
- 行のない NatTable を含む CTabItem を表示します。
- 次に、行にデータを入力して列ヘッダーをクリックしても、何も起こりません (並べ替えが無効になっているようです)。
シナリオ 2:
- 行のない NatTable を含む CTabItem を表示しません。
- 次に、行にデータを入力します
- 次に、行を持つ NatTable を含む CTabItem を表示します。
- 列ヘッダーをクリックすると、すべてが期待どおりに並べ替えられます (並べ替えが有効になっているようです)
シナリオ 3:
- 行のない NatTable を含む CTabItem を表示しません。
- 次に、行にデータを入力します
- 次に、行を持つ NatTable を含む CTabItem を表示します。
- 次に、すべての行データを削除します
- 列ヘッダーをクリックすると、すべてが期待どおりに並べ替えられます (並べ替えが有効になっているようです)。* 行がなくても、列ヘッダー セルに上下のアイコンが表示されます。
NatTable の最初の「ビュー」の後、列ヘッダー アクションが「更新」されない理由はありますか? つまり、行が変更されたかどうかに関係なく、NatTable が最初に表示された後の残りのテーブルの寿命について、行の有無が考慮されているようです。
関連するコード セクションを以下に示します。
nattable - グループ化された nattable コンボボックス フィルター ヘッダー
「ComboBoxFilterRowHeaderComposite」で nattable を実装しようとしています。
フィルタリングは正常に機能していますが、グループ化しようとすると行をフィルタリングした後、次の例外がスローされます
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.remove(ArrayList.java:492)
at ca.odell.glazedlists.FunctionList.listChanged(FunctionList.java:283)
at ca.odell.glazedlists.event.ListEventAssembler$ListEventFormat.fire(ListEventAssembler.java:424)
at ca.odell.glazedlists.event.ListEventAssembler$ListEventFormat.fire(ListEventAssembler.java:421)
at ca.odell.glazedlists.event.SequenceDependenciesEventPublisher$SubjectAndListener.firePendingEvent(SequenceDependenciesEventPublisher.java:445)
at ca.odell.glazedlists.event.SequenceDependenciesEventPublisher.fireEvent(SequenceDependenciesEventPublisher.java:344)
at ca.odell.glazedlists.event.ListEventAssembler.commitEvent(ListEventAssembler.java:317)
at ca.odell.glazedlists.TransformedList.clear(TransformedList.java:98)
at org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.GroupByDataLayer$1.run(GroupByDataLayer.java:286)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.GroupByDataLayer.updateTree(GroupByDataLayer.java:272)
at org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.GroupByDataLayer.update(GroupByDataLayer.java:313)
at java.util.Observable.notifyObservers(Observable.java:159)
at java.util.Observable.notifyObservers(Observable.java:115)
at org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.GroupByModel.update(GroupByModel.java:124)
at org.eclipse.nebula.widgets.nattable.extension.glazedlists.groupBy.GroupByModel.addGroupByColumnIndex(GroupByModel.java:44)
ComboBoxFilterRowHeaderComposite の構造は次のとおりです。
filterRowHeaderLayer = new ComboBoxFilterRowHeaderComposite<T>(
bodyLayerStack.getFilterList(),
bodyLayerStack.getGlazedListsEventLayer(), bodyLayerStack.getSortedList(),
columnAccessor, columnHeaderLayer, dataProvider, configRegistry);
どこ、
columnAccessor = new ReflectiveColumnPropertyAccessor(propertyNames);
columnGroupHeaderLayer = new DynamicColumnGroupHeaderLayer(sortHeaderLayerStack, bodyLayerStack.getSelectionLayer(), bodyLayerStack.getColumnGroupModel(), tr);
DataProvider は com.vanguard.tip.epm.platform.ui.grid.next.DynamicColumnHeaderDataProvider です。
その後
CornerLayerStack cornerLayerStack = new CornerLayerStack(rowHeaderLayerStack, filterRowHeaderLayer);
CompositeLayer gridLayer = new GridLayer(bodyLayerStack, filterRowHeaderLayer, rowHeaderLayerStack, cornerLayerStack);
次に、GroupByHeaderLayer に gridLayer を追加します。
groupByHeaderLayer = new GroupByHeaderLayer(bodyLayerStack.getGroupByModel(), gridLayer, columnHeaderLayerStack.getDataProvider(),
new GroupByHeaderConfigurationWrapper(bodyLayerStack.getGroupByModel(), columnHeaderLayerStack.getDataProvider(), bodyLayerStack.getColumnGroupModel()));
CompositeLayer groupByComposite = new CompositeLayer(1, 2);
groupByComposite.setChildLayer(GroupByHeaderLayer.GROUP_BY_REGION, groupByHeaderLayer, 0, 0);
groupByComposite.setChildLayer("Grid", gridLayer, 0, 1);
これにより、私の Nattable の使用法が明確になることを願っています。
同じ構造のテキストベースフィルターを使用すると、グループ化は正常に機能します:
filterStrategy = new DefaultGlazedListsFilterStrategy<T>(bodyLayerStack.getFilterList(), columnAccessor, configRegistry);
this.filterRowHeaderLayer = new FilterRowHeaderComposite<T>(filterStrategy, columnHeaderLayer, dataProvider, configRegistry);
さらに情報が必要な場合はお知らせください。
nattable - NatTable - フィルタリングされたカウントを表示する
ユーザーがフィルターを入力して表示される行をフィルター処理できる FilterRowHeaderComposite レイヤーがあります。現在表示されている行数も表示します。
誰かがフィルターを入力して行数が変わったときに表示される行数を更新する最善の方法は何だろうと思っていました。特定のイベントをキャプチャしたり、FilterRowHeaderComposite を拡張したり、イベントを発生させたりすることはできますか?
ありがとう!
更新:これは、Dirksのコメントの後に私がやったことです
nattable - NatTable - 最新の行が最初
テーブルの一番上に追加された最新の行を表示できるように、NatTable に設定できるデフォルトのフラグはありますか? それとも、EventList によって維持される backingList の先頭に行を直接追加するだけですか? または、それを sortedList/filterList レイヤーに追加しますか? または別の好ましい方法はありますか?
nattable - Nattable IColumnAccessor ClassNotFound
前述の Vogella チュートリアルのように単純な Nattable を使用しようとしましたが、次のエラーが発生します。
私はプラグイン アプリケーションを開発しており、Luna 4.4.2 を使用しています。誰でも助けてくれます。ビルド パスにすべての jar を追加し、クラスも表示されます。
java - Nattable の行番号を削除する
アプリケーションのいくつかの異なるテーブルに Nattable を使用しています。ここで、最初の列の行番号を削除する方法を見つける必要があります。テーブルから行番号を非表示/削除する方法はありますか?
テーブルを描画するための私のソースは次のとおりです。