Bug 261852 [context] Separate code into API / SPI / internal
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartFactory.java
executeItem(context, newToolItem.getDisplay(),
								toolBarItem, selectionService);
					}
				}
			});
			newToolItem.getDisplay().timerExec(250, new Runnable() {
				public void run() {
					if (newToolItem.isDisposed()) {
						return;
					}
					Object result = canExecuteItem(context, newToolItem
							.getDisplay(), toolBarItem, selectionService);
					((ToolItem) newToolItem).setEnabled(Boolean.TRUE
							.equals(result));
					newToolItem.getDisplay().timerExec(100, this);
				}
			});
		}
	}
	protected Object canExecuteItem(final Context context,
			Display display, final HandledItem item,
			final ISelectionService selectionService) {
		Handler h = getHandler(display, item);
		if (h==null) {
			return Boolean.TRUE;
		}
		
		Object result = contributionFactory.call(h.getObject(), h.getURI(),
				"canExecute", context, Boolean.TRUE);
		return result;