問題タブ [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.

0 投票する
1 に答える
830 参照

java - SWT ダブルクリック展開

ツリー ビューアーにダブル クリック リスナーを実装しました。サンプル コード スニペットを以下に示します。

今問題があります。ダブルクリック機能を必要とするさまざまなクラスからツリー ビューアーのオブジェクトを渡します。ツリー ビューアーのオブジェクトを異なるクラスから渡す代わりにevent.getSource()、イベントが発生したオブジェクトを返す方法はありますか? 実装してみましたがだめでした。誰かが続行方法について提案してもらえますか? event.getSource()それぞれのツリービューアのオブジェクトを返すため、ツリービューアのオブジェクトをどこでも使用したくありません。

アップデート

はい、あなたの意見には同意しますが、ツリー ビューアーをパラメーターとして渡したくありません。だから私はこのように実装しました:

上記のコードに拡張機能はありますか? つまり、オブジェクトを作成し、ITreeSelectionそのオブジェクトが正しい方法のインスタンスであることを確認しIStructuredSelectionていますか? そうでない場合、 instanceof をチェックする正しい方法は何IStructuredSelectionですか?

0 投票する
1 に答える
557 参照

java - TreeViewer Expand-/Collapse-ToLevel バグ

アイテムを1レベル展開または折りたたもうとしているTreeViewerがあります。私の TreeViewer には、同じ名前のアイテムが含まれています。例えば:

展開または折りたたみのために 2 番目のノード A を選択しても、最初のノード A は展開または折りたたみされます。

展開するための私のコードは次のとおりです。

崩壊のための私のコードは次のとおりです。

TreeViewer が正しい選択項目を展開および折りたたむようにするにはどうすればよいですか?

0 投票する
1 に答える
892 参照

java - selectionChanged()を起動せずにtreeviewerの選択を設定する方法は?

私はEclipse RCPプロジェクトに取り組んでいます。いくつかのビューがTreeViewerあり、メソッドを使用selectionChanged()して選択イベントを処理します。ただし、プログラムで選択を設定する必要がある場合もあります。そのために、メソッドでメソッドselectionChanged()を呼び出して、目的の選択を設定します。このメソッドはすべてのビューのメソッドを起動するため、 への循環呼び出しが発生します。setSelection()TreeViewerselectionChanged()selectionChanged()

他のビューで発火せずにTreeViewerアイテムを選択するにはどうすればよいですか?StructuredViewerselectionChanged()

0 投票する
1 に答える
204 参照

java - Java TreeViewer SWT.RIGHT_TO_LEFT

私は 2 つの Eclipse プラグインに取り組んでおりTreeViewer、そのうちの 1 つはパラメータSWT.RIGHT_TO_LEFT. これは次のようになります。 プラグイン画面

ご覧のとおり、ツリー構造は右から左に描かれており、それが必要です。しかし、ここに私の問題があります。テキストも反転しますが、文字列に特殊文字が含まれている場合のみです。 PID.5.7に変換され7.5.PIDます。作成方法TreeViewerとテキストは次のとおりです。

誰でもこの問題を解決できますか? に書いたとおりの文字列を作成したいと思いますTextLayout

編集:

私は言及を追加しました

今私の出力は次のようになります:

ここに画像の説明を入力

ご覧のとおり、PID.7.5 のような文字列では機能しましたが、スペースで区切られた文字列があり、特殊文字のみが含まれている場合は、その逆になります。「MSH.1 |」のように 「| MSH.1」になります

(Style2 を削除し、TextLayout で 1 つのスタイルのみを使用します)

編集2:

回避策:

文字列が az を持たない「単語」で始まるかどうかをテストします。AZ の前に StyleColor = WHITE を指定して「x」を追加するだけです。このようにして、すべての値が正しく表示されます。

0 投票する
1 に答える
78 参照

java - 文字列のサフィックスに基づいて TreeViewer からアイテムを削除します (リスト アイテム)

たとえば、TreeViewer と、項目 (文字列) のリストを含む TreeViewer 内の List があります。

TreeViewer の \\最初の項目を 1 つ 1 つサブタスクします

サブタスク 2 1

サブタスク スリー ワン

サブタスク 4 2

サブタスク フォー スリー

TreeViewer からサフィックス「one」の項目を削除し、残りの項目を残したいと思います。アイテムを反復処理して、名前が文字列「one」で終わるアイテムを削除するにはどうすればよいですか?

サンプルコード:

誰かが私をここで早く助けてください、お願いします。

ツリー ビューアーの入力を設定する前に、リストを反復処理して、名前が "one" という文字列で終わるアイテム (接尾辞 "one" を持つアイテム) のみを削除しますか? リストから項目を削除した後、treeViewer の入力を設定します。

名前が文字列「one」で終わるアイテムを削除する方法はありますか? どうすればいいですか?私はここで立ち往生しています誰かが続行する方法を提案してください?

前もって感謝します。

0 投票する
1 に答える
2202 参照

java - Javaツリービューアーは要素を追加します

基本的に私は Java のツリービューアー (org.eclipse.jface.viewers.TreeViewer) を使用しています。今私の問題は、子要素/アイテムを既存のノットに追加したいということです。

まず、私のツリーは次のようになります。

これらの子 (child1、child2) は手動で追加されるのではなく、ツリー自体を手に入れる前に生成されます。

  1. ツリービューアを作成します: viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
  2. viewer.setInput(....elements()); 上から状態を生成するtreeviewer: にデータを取り込み ます。

  3. viewer.getTree().getItem(0)私の木の正しい結び目 A を返します。

しかし、既存のノットに新しい子を追加することはできません。私は次のことなどを試しました:

TreeItem newItem = new TreeItem(items[0], SWT.NONE); and viewer.add(items[0], newItem); with a newly created item viewer.refresh();

理論的には、最初にツリービューアーにデータを入力する arrayList を操作できましたが、それは本当に悪いと思います。

私は今何が間違っているのか本当にわかりません。かなりばかげた質問だと思います。そうでしたか、失礼しました(^^)

ご協力いただきありがとうございます。あなたが提供できるすべてのヒントに感謝します。

0 投票する
1 に答える
609 参照

java - Treeviewer でオブジェクトを展開するには?

Javaツリービューを理解しようとしています。次のチュートリアルで Treeviewer を作成しました。

http://www.eclipse.org/articles/Article-TreeViewer/TreeViewerArticle.htm

今、解決できない問題があります:/

本オブジェクトを別のオブジェクトで拡張したい。

例えば:

オブジェクトにオブジェクトを追加するにはどうすればよいですか?

どうもありがとうございます

これはコードです:

コンテンツ プロバイダ:

そして、これは入力を含むビューアーです:

たとえば、オブジェクトを追加したい。CCId をテストパッケージに追加します。

ありがとう。

0 投票する
2 に答える
375 参照

java - Eclipse、Project Explorer View でファイル属性を持つ TreeViewer を所有

私はEclipseプラグインを書いています。多くの機能の 1 つは、 .javaファイルのようなファイル属性を使用してツリーを作成することです (Eclipse で .java ファイルをクリックすると、このファイルが持つクラスまたはメソッドのリスト全体を表示できます)。

別のビューでこのツリーを作成できますが、問題はありません (TreeViewer を使用してデータがあり、すべてがうまく機能します) が、プロジェクト エクスプローラー ビューでこのツリーを作成する必要があり、方法がわかりません。
はっきりしないので書いたほうがいいかもしれません。このツリーは、.java ファイルではなく、.txtファイルで表示されます。

だからこれについて読んでください。私が今のところ知っていること:

  1. org.eclipse.ui.decorators拡張ポイントが必要です。私はすでにそれを持っています
  2. 私のクラスはLabelProvider を拡張して ILightweightLabelDecorator を実装する必要があります。それはすでに持っている

decorate()また、既に選択されている File 、 Project 、 Folder (メソッドを使用して) にアクセスできます。プレフィックス/サフィックスを追加して既にファイルを選択し、アイコンをファイルに追加できますが...

file に属性を追加する可能性を与えるメソッドが表示されません