Search in sources :

Example 1 with TreeInputElementUiContentProvider

use of org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeInputElementUiContentProvider in project windowbuilder by eclipse.

the class TreeViewerInputBindingInfo method createContentProviders.

// //////////////////////////////////////////////////////////////////////////
// 
// Editing
// 
// //////////////////////////////////////////////////////////////////////////
@Override
public void createContentProviders(List<IUiContentProvider> providers, IPageListener listener, DatabindingsProvider provider) throws Exception {
    // configure page
    listener.setTitle(Messages.TreeViewerInputBindingInfo_title);
    listener.setMessage(Messages.TreeViewerInputBindingInfo_errorMessage);
    // 
    providers.add(new LabelUiContentProvider(Messages.TreeViewerInputBindingInfo_viewerLabel, m_viewerBindable.getPresentation().getTextForBinding()));
    providers.add(new LabelUiContentProvider(Messages.TreeViewerInputBindingInfo_inputLabel, m_inputObservable.getPresentationText()));
    // 
    TreeInputElementUiContentProvider inputEditor = new TreeInputElementUiContentProvider(this, listener, provider);
    // 
    if (m_inputObservable instanceof DetailBeanObservableInfo) {
        m_inputObservable.createContentProviders(providers, null, provider);
        // 
        ChooseClassAndPropertiesUiContentProvider masterUIContentProvider = (ChooseClassAndPropertiesUiContentProvider) providers.get(providers.size() - 1);
        // 
        ChooseClassConfiguration configuration = new ChooseClassConfiguration();
        configuration.setDialogFieldLabel(Messages.TreeViewerInputBindingInfo_chooseLabel);
        configuration.setValueScope("beans1");
        configuration.setChooseInterfaces(true);
        configuration.setEmptyClassErrorMessage(Messages.TreeViewerInputBindingInfo_chooseEmptyMessage);
        configuration.setErrorMessagePrefix(Messages.TreeViewerInputBindingInfo_chooseErrorPrefix);
        // 
        TreeDetailUiContentProvider detailUIContentProvider = new TreeDetailUiContentProvider(configuration, (DetailBeanObservableInfo) m_inputObservable);
        providers.add(detailUIContentProvider);
        // 
        new ChooseClassAndPropertiesRouter(masterUIContentProvider, detailUIContentProvider);
        new ChooseClassRouter(detailUIContentProvider, new MultiTargetRunnable(detailUIContentProvider, inputEditor.getElementTypeUIProviders()));
    }
    // 
    providers.add(inputEditor);
    // 
    super.createContentProviders(providers, listener, provider);
}
Also used : ChooseClassAndPropertiesRouter(org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassAndPropertiesRouter) LabelUiContentProvider(org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.LabelUiContentProvider) TreeDetailUiContentProvider(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeDetailUiContentProvider) ChooseClassRouter(org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassRouter) TreeInputElementUiContentProvider(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeInputElementUiContentProvider) ChooseClassAndPropertiesUiContentProvider(org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassAndPropertiesUiContentProvider) MultiTargetRunnable(org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.MultiTargetRunnable) DetailBeanObservableInfo(org.eclipse.wb.internal.rcp.databinding.model.beans.observables.DetailBeanObservableInfo) ChooseClassConfiguration(org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassConfiguration)

Example 2 with TreeInputElementUiContentProvider

use of org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeInputElementUiContentProvider 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));
        }
    }
}
Also used : IObserveInfo(org.eclipse.wb.internal.core.databinding.model.IObserveInfo) ItemInfo(org.eclipse.wb.internal.swt.model.widgets.ItemInfo) IUiContentProvider(org.eclipse.wb.internal.core.databinding.ui.editor.IUiContentProvider) ViewerColumnsUiContentProvider(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.ViewerColumnsUiContentProvider) ViewerColumnInfo(org.eclipse.wb.internal.rcp.model.jface.viewers.ViewerColumnInfo) TreeInputElementUiContentProvider(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeInputElementUiContentProvider) ViewerColumnsConfiguration(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.ViewerColumnsConfiguration) TreeInputElementUiContentProvider(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeInputElementUiContentProvider) InputElementUiContentProvider(org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.InputElementUiContentProvider) WidgetBindableInfo(org.eclipse.wb.internal.rcp.databinding.model.widgets.bindables.WidgetBindableInfo)

Aggregations

TreeInputElementUiContentProvider (org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeInputElementUiContentProvider)2 IObserveInfo (org.eclipse.wb.internal.core.databinding.model.IObserveInfo)1 IUiContentProvider (org.eclipse.wb.internal.core.databinding.ui.editor.IUiContentProvider)1 ChooseClassAndPropertiesRouter (org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassAndPropertiesRouter)1 ChooseClassAndPropertiesUiContentProvider (org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassAndPropertiesUiContentProvider)1 ChooseClassConfiguration (org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassConfiguration)1 ChooseClassRouter (org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.ChooseClassRouter)1 LabelUiContentProvider (org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.LabelUiContentProvider)1 MultiTargetRunnable (org.eclipse.wb.internal.core.databinding.ui.editor.contentproviders.MultiTargetRunnable)1 DetailBeanObservableInfo (org.eclipse.wb.internal.rcp.databinding.model.beans.observables.DetailBeanObservableInfo)1 WidgetBindableInfo (org.eclipse.wb.internal.rcp.databinding.model.widgets.bindables.WidgetBindableInfo)1 InputElementUiContentProvider (org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.InputElementUiContentProvider)1 TreeDetailUiContentProvider (org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.TreeDetailUiContentProvider)1 ViewerColumnsConfiguration (org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.ViewerColumnsConfiguration)1 ViewerColumnsUiContentProvider (org.eclipse.wb.internal.rcp.databinding.ui.contentproviders.ViewerColumnsUiContentProvider)1 ViewerColumnInfo (org.eclipse.wb.internal.rcp.model.jface.viewers.ViewerColumnInfo)1 ItemInfo (org.eclipse.wb.internal.swt.model.widgets.ItemInfo)1