JFace ダイアログを作成していて、モデル オブジェクトへのデータ接続を使用したいと考えています。
コードを見るとPojoProperties
、バインディングの作成に が使用されている場合と、 が使用されている場合があることがわかりますPojoObservables
。
私が読むことができるJavadocを見る:
PojoObservables : getter と setter を持つオブジェクトのアイデアに準拠するが、変更時にプロパティ変更イベントを提供しない POJO (プレーンな古い Java オブジェクト)の監視可能なオブジェクトを作成するためのファクトリ。
PojoProperties : getter と setter を持つオブジェクトの概念に準拠するが、変更時にプロパティ変更イベントを提供しない POJO (プレーンな古い Java オブジェクト) のプロパティを作成するためのファクトリ。
同じ質問が、BeansObservablesとBeansPropertiesの間に存在する違いにも当てはまります。
(明らかな) 違いは、observable がオブジェクトを観察できるようにし、properties がプロパティを観察できるようにすることですが、Pojo にはデータのゲッターとセッターがあるため、それらの違いは何ですか? そして、ダイアログにはどれを選択する必要がありますか?
以下にコードの抜粋を示します。
POJO:
public class DataObject {
private String m_value;
public String getValue() {
return m_value;
}
public void setValue(String i_value) {
m_value = i_value;
}
}
ダイアログ(関連部分):
@Override
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
m_combo = new Combo(container, SWT.BORDER);
m_comboViewer = new ComboViewer(container, SWT.NONE);
}
BINDING (関連部分):
// using PojoObservable
IObservableValue observeValue = PojoObservables.observeValue(m_dataObject, "value");
IObservableValue observeWidget = SWTObservables.observeSelection(m_combo);
// using PojoProperties
IObservableValue observeValue = PojoProperties.value("value").observe(m_dataObject);
IObservableValue observeWidget = ViewerProperties.singleSelection().observe(m_comboViewer);
ある時はコンボを使用し、別の時は を使用していることは理解していComboViewer
ますが、必要に応じてビューアからコンボを取得し、別の方法でバインドできます...
また、たとえば をobserveValue
と一緒に使用するなど、2 つを混在させることはできViewerProperties
ますか?
IObservableValue observeValue = PojoObservables.observeValue(m_dataObject, "value");
IObservableValue observeWidget = ViewerProperties.singleSelection().observe(m_comboViewer);