public Object execute(ExecutionEvent event) throws ExecutionException {
		List<IWorkbenchPartReference> editors = new ArrayList<IWorkbenchPartReference>();
		List<IWorkbenchPartReference> views = new ArrayList<IWorkbenchPartReference>();
		enumerateWorkbenchParts(editors, views);
		
		editors = Activator.getActivationHistory().partsInActivationOrder(editors);
		
		TabsDialog dialog = new TabsDialog(Display.getCurrent().getActiveShell(), editors, views, partToActivate(editors));
		IWorkbenchPartReference activatedPart = null;
		if(dialog.open() == TabsDialog.OK) {
			activatedPart = dialog.selection();
			if(activatedPart == null)
				return null;
			
			activePage().activate(activatedPart.getPart(true));
		}
		
		return activatedPart;
	}