treeViewer.getTree( ).addDisposeListener( new DisposeListener( ) {  public void widgetDisposed( DisposeEvent e ) { Object input = treeViewer.getInput( ); if ( input instanceof Object[] ) { Object[] array = (Object[]) input; for ( int i = 0; i < array.length; i++ ) { if ( array[i] instanceof ResourceEntry ) ( (ResourceEntry) array[i] ).dispose( ); }  } }  } );
	protected void configTreeViewer( )	{		ViewsTreeProvider provider = new LibraryExplorerProvider( );		treeViewer.setContentProvider( provider );		treeViewer.setLabelProvider( provider );		refreshRoot( );		// Adds drag and drop support		int ops = DND.DROP_COPY;		Transfer[] transfers = new Transfer[]{TemplateTransfer.getInstance( )};		treeViewer.addDragSupport( ops, transfers, new LibraryDragListener(				treeViewer ) );		treeViewer.getControl( ).addKeyListener( new KeyListener( ) {			public void keyPressed( KeyEvent e )			{			}			public void keyReleased( KeyEvent e )			{				if ( e.keyCode == SWT.F5 )				{					treeViewer.refresh( );				}			}		} );	}