Bug 199021 Error message pops up several times when click an invalid dataset
Description: There is a sqlserver datasource and dataset, remove the jtds driver to let the dataset invalid. Double click on the dataset, the error message will pop up serveral times. Build version:2.2.0.v20070807-0630 Steps to reproduce: 1. Create a sqlserver datasource and dataset. 2. Remove the jtds driver, and the dataset will be invalid. 3. Double click on the dataset. Expect result: Error message pops up once to indicate the problem. Actual result: Error message pops up serveral times.
data/org.eclipse.birt.report.data.oda.jdbc.ui/src/org/eclipse/birt/report/data/oda/jdbc/ui/editors/SQLDataSetEditorPage.java
GridLayout layout = new GridLayout( );
		layout.numColumns = 1;
		composite.setLayout( layout );
		CompositeRuler ruler = new CompositeRuler( );
		LineNumberRulerColumn lineNumbers = new LineNumberRulerColumn( );
		ruler.addDecorator( 0, lineNumbers );
		viewer = new SourceViewer( composite, ruler, SWT.H_SCROLL
				| SWT.V_SCROLL );
		sourceViewerConfiguration = new JdbcSQLSourceViewerConfiguration( );
		viewer.configure( sourceViewerConfiguration );
		doc = new Document( getQueryText( ) );
		FastPartitioner partitioner = new FastPartitioner( new SQLPartitionScanner( ),
				new String[]{
						SQLPartitionScanner.SINGLE_LINE_COMMENT1,
						SQLPartitionScanner.SINGLE_LINE_COMMENT2,
						SQLPartitionScanner.MULTI_LINE_COMMENT,
						IDocument.DEFAULT_CONTENT_TYPE
				} );
		partitioner.connect( doc );
		doc.setDocumentPartitioner( partitioner );
		viewer.setDocument( doc );
		viewer.getTextWidget( ).setFont( JFaceResources.getTextFont( ) );
		viewer.getTextWidget( )
				.addBidiSegmentListener( new BidiSegmentListener( ) {
					/*
					 * @see org.eclipse.swt.custom.BidiSegmentListener#lineGetSegments(org.eclipse.swt.custom.BidiSegmentEvent)
					 */
					public void lineGetSegments( BidiSegmentEvent event )
					{
						event.segments = SQLUtility.getBidiLineSegments( event.lineText );