Bug 261037 bindWidget calls
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/ContributedPartFactory.java
return true;
					}
					return serviceLocator.hasService(api);
				}
			});
			if (newPart instanceof IHasInput) {
				final IHasInput hasInput = (IHasInput) newPart;
				ISelectionService selectionService = (ISelectionService) serviceLocator.getService(ISelectionService.class);
				selectionService.addValueChangeListener(new IValueChangeListener(){
					public void handleValueChange(ValueChangeEvent event) {
						Class adapterType = hasInput.getInputType();
						Object newInput = null;
						Object newValue = event.diff.getNewValue();
						if (newValue instanceof IStructuredSelection) {
							newValue = ((IStructuredSelection) newValue).getFirstElement();
						}
						if (adapterType.isInstance(newValue)) {
							newInput = newValue;
						} else if (newValue != null) {
							newInput = Platform.getAdapterManager().loadAdapter(newValue, adapterType.getName());
						}
						hasInput.setInput(newInput);
					}
				});
			}
		}
		return newWidget;
	}
}