問題タブ [eclipse-databinding]

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 に答える
62 参照

data-binding - EMF データバインディングを使用してリスト内のプロパティを変換しても、値は変換されません

コンバーターを使用して、いくつかの値を整数から文字列に変換しようとしています。

リストが与えられているという事実が気に入らないので、繰り返し試してみました:

IObservableValue observeItemValue = props[0].observe(peopleList.get(i));

ここで、i はインデックスです。例外はスローされませんが、値は変換されません。props[0]監視されるプロパティのみが含まれています。

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

java - 他のいくつかのモデルによって拡張されているモデルと TableViewer をバインドする

私はFile他の2つのクラスによって拡張されているクラスCopyFileを持っていDeleteFileます.

今、これをテーブルビューアにバインドしようとしています:

CopyFilefile が のインスタンスである場合、nullまたはのインスタンスである場合に、destinationPath を表示したいと考えてい""ますDeleteFile

しかし、これを実行するとエラーがスローされます。

クラス File に名前が destinationPath のプロパティが見つかりませんでした

これを手伝って、継承の場合に DataBinding を実装する方法を教えてください。

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

eclipse-rcp - Eclipse RCP 4 - テーブルのバインディング列と iobservable 値

次の問題があります - 変化している IObservableValue があり、テーブルの最初の列に表示する必要があります。他の列の値はこの値に基づいています (他の各列では値が計算され、値は最初の列の値に依存します)。これはどのように行うことができますか?

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

eclipse - ViewerSupport.bind() を画像と組み合わせて使用​​できますか?

私の Eclipse RCP ビューでは、JFace データバインディングを使用してモデル データをorg.eclipse.jface.viewers.TreeViewer. ViewerSupport.bind()スニペットに示されているようにデータをバインドするために使用しましたが、問題なく動作します。

ここで、ノードにテキストとともに画像を表示したいと思います。LabelProviderデータバインディングがなければ、 aのメソッドをオーバーライドするだけgetImage(Object element)ですが、コンテンツ + ラベル プロバイダー メソッドと の使用はViewerSupport連携しません。ViewerSupportAPIで問題の解決策が見つかりません。おそらくorg.eclipse.core.databinding.property.value.IValuePropertysを使用して解決策はありますか?

0 投票する
0 に答える
123 参照

jface - ObservableMap を ListViewer または TableViewer にバインドする方法は?

ObservableSetContentProviderまたはを使用して Set または List を Viewer にバインドする方法については、多くの例がありますObservableListContentProvider。ただし、インターフェースを実装ObservableMapContentProviderする やビューアーを にバインドする方法については何も見つかりませんでした。HashMapIObservableMap

使用例:

  • `ListViewerでマップキーを表示するためのバインド
  • キーが 1 つの列で、Value プロパティが他の列であるテーブル ビューアーにマップ エントリを表示するためのバインディング。

EMF では を使用してこれを行うことができることは知っていEMapますが、ObservableMap.

誰かが私を正しい方向に向けることができますか?

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

java - コンパイル エラーを引き起こすデータバインディング リストの新しいジェネリック

現在、RCP プロジェクトを Neon にアップグレードしていますが、次の問題が発生しました。

JFace データバインディングにジェネリックが追加され、新しいメソッドシグネチャが作成されたようです。

以前はできました

メソッドが からに自動的にキャストすることをobserve想定List<Object>しているため、コンパイル エラーが発生します。modulesList<AbstractTestModule>List<Object>

ドキュメントはこちら: http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fcore%2Fdatabinding%2Fproperty%2FProperties. html

そのようなキャストを行う方法はありますか、または使用できる別の戦略はありますか?

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

data-binding - 検証エラーにより取り消しがブロックされる

EMF ベースの Eclipse アプリケーションに次の問題があります。

元に戻すは正常に機能します。検証は正常に機能します。ただし、GUI フィールドのデータに検証エラーがあると、元に戻すアクションの使用がブロックされます。たとえば、そのフィールドを有効な状態に戻すために元に戻すことはできません。

この図では、 undo を使用することはできません:

うまくいけば、質問を見るのがもう少し楽しくなる、あまり有益な画像ではありません。


アプリケーションで使用されるツール:

  • Eclipse データバインディング
  • UpdateValueStrategy検証のためのバインディングに関する
  • UndoAction元に戻すは、を呼び出す標準を使用して実装されますCommandStack.undo
  • MessageManagerSupport検証フレームワークを Eclipse Forms ベースの GUI に接続するクラス。

データ バインディングは次のようになります。


問題はこれです:

  • 元に戻すシステムは、モデルを変更するコマンドで機能します。
  • 検証システムは、検証エラーがある場合、更新がモデルに到達するのを停止します。

検証エラーが発生したときに元に戻すには、次のいずれかを実行できると思います。

  1. GUI 層で元に戻すシステムを動作させます。(これは大きな変更になるでしょう。これに EMF を使用することはおそらくまったく不可能です。)
  2. 有効なデータと同様に、モデル データを変更する GUI トリガー コマンドで無効なデータを作成します。(データがディスクに保存されない限り、これは問題ありません。しかし、これを行う方法が見つかりません。)
  3. のコンテンツ リスナーによってトリガーされる可能性がある、モデルで検証を直接機能させResourceます。(これは検証戦略の大きな変更です。この段階でソース GUI コントロールを追跡することはできないようです。)

これらの解決策は、不可能に見えるか、深刻な欠点があります。

検証エラーが発生した場合でも元に戻すにはどうすればよいですか?


:Mad Mattsの回答は、彼らの提案が私の解決策につながるため、受け入れます。しかし、私はそれで満足しているわけではなく、もっと良いものがあればいいのにと思います。

誰かがより良い解決策を見つけた場合、現在の解決策ではなく、喜んでそれを受け入れることを検討します!

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

eclipse-plugin - TreeViewer から GridTreeViewer へ: 既存の ITreeContentProvider と「怠惰な」ObservableListTreeContentProvider の間のブリッジ

TL;DR

Thomas Schindlの記事JFace-Viewer and Eclipse Databinding with > 10.000 ObjectsTreeViewer (これは非常に良い考えです) に基づいて、通常の+ 複数のITreeContentProvider実装を、 、a、およびEclipse Data Bindingを使用するNebulaGridTreeViewerに変換して作成したいと思います。 "lazy" (レイジー) で、オンデマンドでデータをロードしますObservableListTreeContentProviderVisibleRangeChangedListener

ITreeContentProviderで同じ階層を使用するには、既存の通常の実装をどのように書き直すべきObservableListTreeContentProviderですか? 古いソリューションと新しいソリューションの間に「架け橋」を作ることはできますか? DelegatingListPropertyどういうわけかこのように使用しますか?他のアイデアはありますか?
単純すぎる例をいくつか見つけましたが、このような複雑な階層ツリー形式でデータ バインディングを使用するという概念がよくわかりません。

ツリーとコンテンツ プロバイダの例:

コンテンツ プロバイダ 1.:

コンテンツ プロバイダー 2.:

長い説明

従来の実装と+実装のカスタムを使用して、膨大な量のオブジェクトを階層ツリー形式で表示するビューがあります。この階層を表示する形式をユーザーが選択できるメニューもあります。ユーザーが別の表示形式を選択すると、別の実装がビューアーに設定され、プログラムによってビューアーが更新されるだけです。 動作しますが、膨大な数の要素 (場合によっては 100 ~ 200k 行、理由は聞かないでください。動作する必要があるだけです) のため、アイテムの表示が遅くなる可能性があります。TreeViewerITreeContentProviderLabelProviderITableLabelProviderITreeContentProvider
、TreeItems に非常に多くのリスナーがあり、ビューの更新に時間がかかるなどの理由で、UI がフリーズすることがあります。

そのため、モデル要素が既にメモリに読み込まれている間に、ある種の怠惰なソリューションを使用したいと思います。
私はすでに と を試しましSWT.VIRTUALILazyTreeContentProviderが、パフォーマンスが悪く ( を使用していてもviewer.setUseHashlookup(true))、問題がありました (スクロール時に、TreeItems の読み込みに時間がかかり、バグ、並べ替え、フィルタリングなどの問題がありました)。

Thomas Schindl のブログ記事: JFace-Viewer and Eclipse Databinding with > 10.000 Objectsを読みました。Eclipse Nebula GridGridTreeViewerand + ObservableListTreeContentProvider(これもITreeContentProvider実装です) とVisibleRangeChangedListener"lazy" ラベル プロバイダー (記事のように)を使用して、これを試してみたいと思います。どうにか既存のITreeContentProvider実装を使用して、これと新しいの間に「ブリッジ」を構築できObservableListTreeContentProviderますか?


ところで、私はNebula NatTableをチェックしましたが、既存のコンテンツ プロバイダーをこの新しいソリューションに移行するのは非常に難しいことがわかりました。その API とそのアプローチはまったく異なります (階層は子から親へ、逆ではありません)。はまだ空です。