use of org.eclipse.wb.internal.rcp.databinding.emf.model.observables.DetailValueEmfObservableInfo in project windowbuilder by eclipse.
the class EmfObserveTypeContainer method createDetailValue.
AstObjectInfo createDetailValue(AstEditor editor, Expression[] arguments, int startIndex, IModelResolver resolver) throws Exception {
// prepare master
ObservableInfo masterObservable = getMasterObservable(editor, resolver, arguments[startIndex]);
if (masterObservable == null) {
AbstractParser.addError(editor, MessageFormat.format(Messages.EmfObserveTypeContainer_masterObservableArgumentNotFound, arguments[startIndex]), new Throwable());
return null;
}
// prepare detail property
addEMFPackage(arguments[startIndex + 1]);
String detailPropertyReference = CoreUtils.getNodeReference(arguments[startIndex + 1]);
// create observable
DetailValueEmfObservableInfo observeDetailValue = new DetailValueEmfObservableInfo(masterObservable, m_propertiesSupport);
observeDetailValue.setDetailPropertyReference(null, detailPropertyReference);
observeDetailValue.setCodeSupport(new EmfObservableDetailValueCodeSupport());
//
return observeDetailValue;
}
use of org.eclipse.wb.internal.rcp.databinding.emf.model.observables.DetailValueEmfObservableInfo in project windowbuilder by eclipse.
the class EmfValuePropertyCodeSupport method createDetailObservable.
@Override
protected ObservableInfo createDetailObservable(ObservableInfo masterObservable, PropertiesSupport propertiesSupport) throws Exception {
Assert.isNotNull(m_parserPropertyReference);
//
DetailValueEmfObservableInfo observeDetailValue = new DetailValueEmfObservableInfo(masterObservable, propertiesSupport);
observeDetailValue.setDetailPropertyReference(null, m_parserPropertyReference);
observeDetailValue.setCodeSupport(new EmfValuePropertyDetailCodeSupport());
//
return observeDetailValue;
}
use of org.eclipse.wb.internal.rcp.databinding.emf.model.observables.DetailValueEmfObservableInfo 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