use of org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.ViewerColumnsUiContentProvider in project windowbuilder by eclipse.
the class AbstractViewerInputBindingInfo method createContentProviders.
// //////////////////////////////////////////////////////////////////////////
//
// Editing
//
// //////////////////////////////////////////////////////////////////////////
@Override
public void createContentProviders(List<IUiContentProvider> providers, IPageListener listener, DatabindingsProvider provider) throws Exception {
if (m_isColumnViewer) {
List<WidgetBindableInfo> viewerColumns = Lists.newArrayList();
// prepare viewer columns
WidgetBindableInfo viewerControlBindable = (WidgetBindableInfo) m_viewerBindable.getParent();
for (IObserveInfo observe : viewerControlBindable.getChildren(ChildrenContext.ChildrenForMasterTable)) {
WidgetBindableInfo widgetBindable = (WidgetBindableInfo) observe;
// extract columns
if (widgetBindable.getJavaInfo() instanceof ItemInfo) {
for (IObserveInfo subObserve : widgetBindable.getChildren(ChildrenContext.ChildrenForMasterTable)) {
WidgetBindableInfo subWidgetBindable = (WidgetBindableInfo) subObserve;
// extract viewer columns
if (subWidgetBindable.getJavaInfo() instanceof ViewerColumnInfo) {
viewerColumns.add(subWidgetBindable);
}
}
}
}
//
if (!viewerColumns.isEmpty()) {
// prepare element type provider
VirtualEditingSupportInfo.IElementTypeProvider elementTypeProvider = null;
for (IUiContentProvider contentProvider : providers) {
// wrap Viewer editor
if (contentProvider instanceof InputElementUiContentProvider) {
final InputElementUiContentProvider inputElementContentProvider = (InputElementUiContentProvider) contentProvider;
elementTypeProvider = new VirtualEditingSupportInfo.IElementTypeProvider() {
@Override
public Class<?> getElementType() throws Exception {
return inputElementContentProvider.getChoosenClass();
}
};
break;
}
// wrap TreeViewer editor
if (contentProvider instanceof TreeInputElementUiContentProvider) {
final TreeInputElementUiContentProvider inputElementContentProvider = (TreeInputElementUiContentProvider) contentProvider;
elementTypeProvider = new VirtualEditingSupportInfo.IElementTypeProvider() {
@Override
public Class<?> getElementType() throws Exception {
return inputElementContentProvider.getCurrentElementType();
}
};
break;
}
}
// prepare configuration
ViewerColumnsConfiguration configuration = new ViewerColumnsConfiguration(this, elementTypeProvider, viewerColumns, m_editingSupports);
// prepare provider
providers.add(new ViewerColumnsUiContentProvider(configuration));
}
}
}
Aggregations