if (fList.isDisposed()) return;  fList.setRedraw(false);   int itemCount= fList.getItemCount(); if (fFoldedCount < itemCount) fList.remove(0, itemCount - fFoldedCount - 1); else if (fFoldedCount > itemCount) for (int i= 0; i != fFoldedCount - itemCount; i++) new TableItem(fList, SWT.NONE);
fFilteredCount= filter(); fFoldedCount= fold();
	private void updateList() {		if (fList.isDisposed())			return;					fList.setRedraw(false);				// resize table		int itemCount= fList.getItemCount();		if (fFoldedCount < itemCount)			fList.remove(0, itemCount - fFoldedCount - 1);		else if (fFoldedCount > itemCount)			for (int i= 0; i != fFoldedCount - itemCount; i++)				new TableItem(fList, SWT.NONE);		// fill table		TableItem[] items= fList.getItems();		for (int i= 0; i != fFoldedCount; i++) {			TableItem item= items[i];			Label label= fLabels[fFilteredIndices[fFoldedIndices[i]]];						item.setText(label.string);			item.setImage(label.image);		}		// select first item if any		if (fList.getItemCount() > 0)			fList.setSelection(0);					fList.setRedraw(true);				fList.notifyListeners(SWT.Selection, new Event());	}