use of org.eclipse.wb.internal.rcp.databinding.emf.model.observables.properties.EmfValuePropertyDetailCodeSupport in project windowbuilder by eclipse.
the class GlobalObservableFactory method createDetailObservable.
// //////////////////////////////////////////////////////////////////////////
//
// IGlobalObservableFactory: Observable
//
// //////////////////////////////////////////////////////////////////////////
@Override
public ObservableInfo createDetailObservable(SingleSelectionObservableInfo masterObservable, BindableInfo object, Type type) throws Exception {
if (masterObservable.isViewer()) {
// prepare input
ObservableInfo inputObservable = null;
BindableInfo property = object.resolvePropertyReference("setInput");
for (AbstractBindingInfo binding : object.getBindings()) {
if (binding.getTargetProperty() == property) {
AbstractViewerInputBindingInfo viewerBinding = (AbstractViewerInputBindingInfo) binding;
inputObservable = viewerBinding.getInputObservable();
break;
}
}
// create detail observable
if (inputObservable instanceof ListEmfObservableInfo) {
PropertiesSupport propertiesSupport = getPropertiesSupport(inputObservable);
boolean version_2_5 = propertiesSupport.isEMFProperties();
ObservableInfo observable = null;
//
if (type == Type.OnlyValue) {
observable = new DetailValueEmfObservableInfo(masterObservable, propertiesSupport);
//
if (version_2_5) {
observable.setCodeSupport(new EmfValuePropertyDetailCodeSupport());
} else {
observable.setCodeSupport(new EmfObservableDetailValueCodeSupport());
}
} else if (type == Type.OnlyList) {
observable = new DetailListEmfObservableInfo(masterObservable, propertiesSupport);
//
if (version_2_5) {
observable.setCodeSupport(new EmfListPropertyDetailCodeSupport());
} else {
observable.setCodeSupport(new EmfObservableDetailListCodeSupport());
}
}
return observable;
}
}
return null;
}
Aggregations