問題タブ [treeviewer]
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.
eclipse-plugin - TreeViewerでViewerFilterを使用するのに最適な方法は?
私はViewerFilter
いくつかの枝の木にを適用していますが、ほとんどは葉です。フィルタは、葉内のプロパティを使用して、実際に葉に適用されます。葉が表示されるように、すべてのブランチはそのまま残されます。
ただし、選択した葉を含まないブランチを除外したいのですが、ViewerFilter
これを可能にするメカニズムはありません。
これは可能ですか?
たとえば、以下の概念的なツリーが与えられた場合(ここb
で、はブランチ、aL
はリーフ)
ViewerFilter
偶数の葉と偶数の葉を含む枝のみを選択するを適用したいと思います。結果のツリーは..になります。
..b2
選択された子が含まれていないため、ブランチは表示されませんが、ブランチb0
して表示されb1
ます。
java - setInput()の前にTreeViewerの状態を保存する
TreeViewer
メソッドを呼び出した後、JFace拡張状態を保存して更新しようとしていますsetInput()
。getExpandedElements
、、、setExpandedElements
の方法を試しましたがgetExpandedTreePaths
、機能しません。setExpandedTreePaths
TreeViewer
eclipse - 遅延および遅延 TreeViewer に関する質問
実際には2つの質問がありますが、それらは一種の関連性があるため、ここでは1つにします...
TreeViewer
( SWT.VIRTUAL
) とを使用して現在表示されていないツリー ノードのガベージ コレクションを確実に行う方法はILazeTreeContentProvider
? ノードに 5000 の子がある場合、それらがビューアーによって表示されると決して手放されないため、ツリーに多数のノードとリーフがあり、十分なヒープ サイズがない場合、メモリ不足エラーが発生します。大量のデータ (数十万または数百万のオブジェクト) を持つツリービューアーを保持している閉じられていないビューによって引き起こされるメモリ リークを回避するためのベスト プラクティスはありますか? おそらく、ビューアー/コンテンツ プロバイダー要素をより柔軟に使用できるコールバック インターフェイスがいくつかあるのではないでしょうか?
単一の( ) に対して、deffered ( DeferredTreeContentManager
) と lazy ( ILazyTreeContentProvider
) の読み込みを組み合わせることは可能ですか? 例と API を見て理解した限りでは、特定の時点でどちらか一方しか使用できず、両方を組み合わせて使用することはできません。たとえば、特定のノードの可視の子のみをフェッチし、Job を使用して別のスレッドでそれらをフェッチします。 API。私を悩ませているのは、遅延アプローチがすべての子をロードすることです。別のスレッドではありますが、一度に最小限のサブセットのみが表示される場合でも、すべての要素をロードします。TreeViewer
SWT.VIRTUAL
必要に応じて、質問にコード例を提供できます...
私は現在それらに苦労しているので、その間に何かを思い付くことができれば、ここで喜んで共有します.
ありがとう!
よろしく、 スヴィレン
eclipse - DeferredTreeContentManager による Eclipse Treeviewer のロードの延期
この便利なチュートリアルから学んだ、TreeViewer
を使用してロードを延期するアプローチがあることを理解しています。DeferredTreeContentManager
ただし、このメカニズムでは、モデルにIDeferredWorkbenchAdapter
インターフェイスを実装する必要があり、これにより、従来の不変モデル クラスに問題が発生します。インターフェースDeferredTreeContentManager
を実装するモデルがなくても使用できますか?IDeferredWorkbenchAdapter
eclipse - Eclipse の列と FilteredTree
FilteredTree
運の悪いいくつかの列を作成しようとしています。列を使用すると正常にTreeViewer
動作しますが、使用に切り替えるとFilteredTree
、列を削除した場合にのみ動作するようになるため、列で使用する方法があるかどうか疑問に思ってFilteredTree
います。
eclipse - TreeViewer.setSelection() は、指定されたパスの後に正しいアイテムを選択しません
ツリー ビューアに同じオブジェクトに基づくツリー アイテムが他にもある場合、 を作成してTreePath
に渡すとTreeViewer.setSelection()
、現在の選択がナビゲートしたいアイテムと同じ場合、アイテムが正しく選択されません。
例:
同じオブジェクト (BigDecimal.ONE
この場合) を示す 2 つの項目を持つツリーがあります。それらには異なるパスがあります (異なる親):
あるアイテムにいるときにBigDecimal.ONE
、リンクをクリックして別のアイテムに移動したいBigDecimal.ONE
. リンクの選択リスナーでTreeSelection
、正しいを作成しますTreePath
。それから私は電話しますsetSelection
。しかし、ナビゲーションは機能しません。ただし、ルート アイテムが最初に折りたたまれている場合は、展開されますが、正しいアイテムに移動しません。
コードは次のとおりです。
私の質問は、これが jface のバグなのか、それとも正しい方法で行っていないのかということです。
編集:
eclipse.org に既にバグが投稿されているようです: https://bugs.eclipse.org/bugs/show_bug.cgi?id=332736
java - SWT/JFace TreeColumn の並べ替え - setMoveable() の問題
ユーザーが列ヘッダーをドラッグして列を並べ替えることができるマルチ列 SWT Tree
( JFace 経由)を設定しようとしています。TreeViewer
ただし、最初の列は固定して移動できないようにする必要があります。setMoveable(true)
最初のメソッドを除いて、それぞれでメソッドを使用しTreeColumn
て実際に近づけることができますが、ユーザーが別の列をその左側にドラッグすることを妨げません。これを解決する方法はありますか?
問題を説明するための簡略化された作業スニペット (JFace なし) を次に示します。
swt - SWT/JFace: コンテンツとしてコンポジットを持つ複数列の TreeViewer
ここにあるものと同様の、グラフィックエディター用のマルチカラムツリーのようなインターフェイスを作成したい: http://imageshack.us/photo/my-images/854/51909806.png/。親ツリー アイテム (レイヤーを追加または削除する可能性あり) としてのレイヤーと、レイヤー設定を表す子アイテムのコレクションのようなテーブルが含まれます。この目的に適したウィジェットはどれですか? TreeViewer を考えましたが、LabelProvider を getText() または getImage() メソッドでしか設定できないため、ウィジェットを子ノードとして挿入できません。私の場合、使用するのに最も適切なものは何ですか?
java - SWT TreeViewer、列の文字列テキストをトリム
SWTTreeViewer
を使用していくつかのパスを表示しています。パスが長すぎてツリー列に完全に表示されない場合、パス文字列をトリミングして「...」(ポイント) を挿入することはできますか?
このようなもの:
前もって感謝します
java - SWT で TreeViewer を適切に更新するにはどうすればよいですか?
JFace を使用するアプリがありますTreeViewer
。に接続していContentProvider
ます。ほとんどの場合、それはうまく機能します。ただし、ノードのリストの途中にノードを追加したり、ノードのラベルを変更する値を変更したりするなど、一部のアクションではrefresh()
呼び出しが機能しません。親ノードを含めてみました。ラベルの更新には「true」と言ってください。常に機能するものはありません。
折りたたみ可能なノードを閉じたまま追加してから展開すると、追加されたノードが表示されることがわかりました。ただし、既に展開されている場合は、変更は表示されません。ツリー情報をディスクに保存して見ると、変更が加えられています。TreeViewer
機能していないのはリフレッシュだけです。
inputChanged
でメソッドを見ましたContentProvider
が、アプリの実行の最初と最後にのみ呼び出されます。
誰でも助けることができますか?答えをほのめかしているすべての Web ページを読みましたが、何も機能しませんでした。