問題タブ [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 の行の色を動的に変更する
行の基準に基づいて背景の行の色を変更しようとしています。私は非常に近いですが、指を置くことができない何かがあります。(これは、基になるリストからオブジェクトを取得するのではなく、データを動的に取得するためだと思います。以下のコードのこのセクションにマークを付けました)
以下の例では、各行の色は、成功または失敗の値を持つオブジェクト (MyObj) に基づいています。myObj に成功値がある場合、行は緑色になります。myObj に失敗値がある場合、行は赤になります。myObj に値がない場合は、デフォルトの行の色を使用する必要があります。
コードを実行すると、行の色が期待どおりに表示されます。ただし、列を並べ替えると、データが新しい行インデックスに移動する間、元の行インデックスはその色を維持します。行の色は、常にその行のインデックスに固定されるのではなく、オブジェクトとともに移動すると予想されます。
その列をアルファベット順に並べ替えると、次のようになります。
以下は、例を生成するために使用するコード スニペットです。
java - NatTable-動的列幅の設定
NatTable の列を動的に拡張したい
- セル内の値全体を表示する
- 親コンポジットを完全に埋める
どちらか一方はできるようですが、両方はできないようです。つまり、大きな親 Composite があり、NatTable に非常に短い値を持つ列が数列しかない場合、多くの空白スペースができます (つまり、NatTable の幅は、親の Composite の幅に比べて小さくなります)。
次のコード スニペットを試しました。
値に基づいて列のサイズが自動変更されるハイブリッドを探していると思います。テーブルがコンポジットの幅を満たさない場合は、次のいずれかが必要です。
- テーブルが Composite 親と同じサイズになるまで、すべての列に均等に幅が追加されます。
- テーブルがコンポジットの親と同じサイズになるまで、特定の列が余分な幅を追加します
テーブルがコンポジットの幅全体を埋め、列の値が長い場合、すべての列とそれらの切り捨てられていない値を表示するために、(必要に応じて) テーブルに水平スクロールバーがあることを確認したいと思います
これを達成する方法について誰かが洞察を持っていますか? ありがとう!
java - NatTable で選択した行の色を変更する
デフォルトの行選択色を変更するにはどうすればよいですか? 以下のコード スニペットでは、これにアクセスする場所がわかりません。
nattable - NatTable を左側にロックする方法
列がビューを移動するのではなく、データが列を移動しているように見えるように、左側の NatTable をロックするにはどうすればよいでしょうか? これにより、列が左側で切り取られるという問題も解決されます。
java - イメージと背景を NatTable 行に追加する
https://eclipse.org/nattable/documentation.php?page=stylingのドキュメントを読みました。
別の構成を使用して背景の行の色と画像を簡単に追加する方法があるかどうか知りたいです。CellPainterWrapper の例のようにそれらを 1 つの構成に結合したくありません。2 つの間のロジックを分離したいからです。私の現在のコードは、画像または背景色のいずれかで機能しますが、両方を行うことはできません (一番上の構成が一番下の構成をオーバーライドします)。以下は私のスニペットです:
アップデート
私はそれを機能させるために次のようなことをしました:
java - NatTable セルの選択色の変更
行をクリックすると、行全体の色が期待どおりに変わります。ただし、マウスが置かれているセルは、行の残りの部分とは異なる色に変わります。セルが行の残りの部分とは異なる色に変更されないようにしています。
セルの選択色が設定されている場所とそれを削除する方法を見つけようとしています(セルの選択にセルの現在の背景色を使用させます)。
CellConfigAttribute の変更や登録解除などの試みに失敗しました:
しかし運がない。すべてのスタイルを順番に繰り返し処理し、これがどこから生成されているかを確認する方法がわかりません。次のような既存の方法を見たいと思っていました。
残念ながら、私が見るのは次のようなものだけで、私の状況では役に立ちません。
一般的なアドバイスが記載されているドキュメントを読みましたが、これを行う方法を示す明示的なコード サンプルは見当たりませんでした。では、セルが変更されている場所を特定し、それを防ぐ方法を教えてください。
完全な行選択に使用しているコードは次のとおりです。
filter - Nebula NatTable の持続状態
アプリケーションの 1 つで NatTable を使用しました。nat テーブルは、XML ファイルからコンテンツをロードするために使用され、ソートおよびフィルタリング機能が実装されています。Nat テーブルの永続性に関する投稿を読みましたhttp://www.eclipse.org/nattable/documentation.php?page=persistence。
このトピックは私にとって初めてなので、テーブルを閉じるときにフィルター行の状態を保存し、後でテーブルが再度読み込まれるときにフィルター行の状態を (以前に保存したように) 読み込むように実装を正常に変更することができません。この操作の手順を教えてください。PersistentNatExample を参照しました。
アプリケーションには、FilterRowHeaderComposite を拡張するクラスがあります。プロパティ オブジェクトをファイル システムに保存するために、このクラスの saveState() メソッドをオーバーライドしました。コードをデバッグし、FilterRowDataProvider クラスの saveState() メソッドに到達すると、「filterIndexToObjectMap」オブジェクトは空です。これが、フィルターの状態が期待どおりに保存およびロードされない理由であると思われます。私は何かを逃したことがありますか?
java - CTabItem 内の NatTable の幅
多くのCTabItemsを持つCTabFolderがあります。各 CTabItem には、そのコントロールとして異なる NatTable があります。各 NatTable が作成されると、列ヘッダーはありますが、行はありません。[Populate Data] ボタンをクリックすると、各テーブルにデータが入力されます。
[Populate Data] ボタンをクリックする前に各タブを表示すると、期待どおりに列ヘッダーが表示されます。ボタンを押すと、すべてのテーブルにすべてのデータが正しく入力されていることがわかります。
[Populate Data] ボタンをクリックする前にタブを表示しないと、列ヘッダーやデータが表示されません (以前に表示しなかったタブの場合)。これは、そのタブの NatTable の幅が 0 であるためです。
「Populate Data」ボタンをクリックする前に、すべてのタブをクリックする必要はありません。タブがフォーカスされていないときに NatTable の幅を正しく設定するために、内部で行われている呼び出し (手動で呼び出す必要があるかもしれません)。
以下は私のコードサンプルです: