fMemento= null;
	public void createPartControl(Composite parent) {		Assert.isTrue(fViewer == null);		fTypeComparator= new JavaElementTypeComparator();		// Setup viewer		fViewer= createViewer(parent);		fLabelProvider= createLabelProvider();		ILabelDecorator decorationMgr= PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();		fViewer.setLabelProvider(new DecoratingLabelProvider(fLabelProvider, decorationMgr));				fViewer.setSorter(new JavaElementSorter());		fViewer.setUseHashlookup(true);		fTitleProvider= createTitleProvider();				MenuManager menuMgr= new MenuManager("#PopupMenu"); //$NON-NLS-1$		menuMgr.setRemoveAllWhenShown(true);		menuMgr.addMenuListener(this);		fContextMenu= menuMgr.createContextMenu(fViewer.getControl());		fViewer.getControl().setMenu(fContextMenu);		getSite().registerContextMenu(menuMgr, fViewer);		getSite().setSelectionProvider(fViewer);		createActions(); // call before registering for selection changes		addKeyListener();		// Custom filter group		if (fHasCustomFilter)			fCustomFiltersActionGroup= new CustomFiltersActionGroup(this, fViewer);		if (fMemento != null)			restoreState(fMemento);		fMemento= null;		getSite().setSelectionProvider(fViewer);				// Status line		IStatusLineManager slManager= getViewSite().getActionBars().getStatusLineManager();		fViewer.addSelectionChangedListener(new StatusBarUpdater(slManager));					hookViewerListeners();		// Filters		addFilters();		// Initialize viewer input		fViewer.setContentProvider(createContentProvider());		setInitialInput();				initDragAndDrop();				// Initialize selecton		setInitialSelection();				// Listen to workbench window changes		getViewSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(this);		getViewSite().getPage().addPartListener(fPartListener);				fillActionBars();				setHelp();	}