if ( needFilter ) { filename = URIUtil.getRelativePath( getBasePath( ), filename ); }
filename = URIUtil.getRelativePath( getBasePath( ), filename );
			public void widgetSelected( SelectionEvent e )			{				String filename = null;				if ( !isIDE )				{					FileDialog dialog = new FileDialog( UIUtil.getDefaultShell( ) );					if ( needFilter )					{						dialog.setFilterExtensions( fileExt );					}					filename = dialog.open( );				}else{					ProjectFileDialog dialog;					if ( needFilter )					{						dialog = new ProjectFileDialog( getProjectFolder( ),fileExt );					}					else dialog = new ProjectFileDialog( getProjectFolder( ) );					if ( dialog.open( ) == Window.OK )					{						filename = dialog.getPath( );					}				}				try				{					if ( filename != null )					{						File file = new File( filename );						if ( !( file.isFile( ) && file.exists( ) ) )						{							ExceptionHandler.openErrorMessageBox( Messages.getString( "HyperlinkBuilder.FileNameError.Title" ),									Messages.getString( "HyperlinkBuilder.FileNameError.Message" ) );							return;						}						filename = file.toURL( ).toString( );						// should check extensions in Linux enviroment						if ( needFilter								&& checkExtensions( fileExt, filename ) == false )						{							ExceptionHandler.openErrorMessageBox( Messages.getString( "HyperlinkBuilder.FileNameError.Title" ),									Messages.getString( "HyperlinkBuilder.FileNameError.Message" ) );							return;						}						if ( needFilter )						{							filename = URIUtil.getRelativePath( getBasePath( ),									filename );						}						filename = new Path( filename ).toString( );						if ( needQuote )						{							filename = "\"" + filename + "\""; //$NON-NLS-1$ //$NON-NLS-2$						}						text.setText( filename );					}					updateButtons( );				}				catch ( Exception ex )				{					ExceptionHandler.handle( ex );				}			}