cnvSelection.addMouseListener( this );
cnvSelection.addListener( SWT.MouseDown, this );
	private void placeComponents( )	{		// THE LAYOUT OF THIS COMPOSITE (FILLS EVERYTHING INSIDE IT)		FillLayout flMain = new FillLayout( );		flMain.marginHeight = 0;		flMain.marginWidth = 0;		setLayout( flMain );		// THE LAYOUT OF THE OUTER COMPOSITE (THAT GROWS VERTICALLY BUT ANCHORS		// ITS CONTENT NORTH)		cmpContentOuter = new Composite( this, SWT.NONE );		GridLayout glContentOuter = new GridLayout( );		glContentOuter.verticalSpacing = 0;		glContentOuter.horizontalSpacing = 0;		glContentOuter.marginHeight = 0;		glContentOuter.marginWidth = 0;		glContentOuter.numColumns = 1;		cmpContentOuter.setLayout( glContentOuter );		// THE LAYOUT OF THE INNER COMPOSITE (ANCHORED NORTH AND ENCAPSULATES		// THE CANVAS + BUTTON)		cmpContentInner = new Composite( cmpContentOuter, SWT.BORDER );		GridLayout glContentInner = new GridLayout( );		glContentInner.verticalSpacing = 0;		glContentInner.horizontalSpacing = 0;		glContentInner.marginHeight = 0;		glContentInner.marginWidth = 0;		glContentInner.numColumns = 2;		cmpContentInner.setLayout( glContentInner );		GridData gdContentInner = new GridData( GridData.FILL_HORIZONTAL );		cmpContentInner.setLayoutData( gdContentInner );		// THE CANVAS		cnvSelection = new FillCanvas( cmpContentInner,				SWT.NONE,				this.bAutoEnabled );		GridData gdCNVSelection = new GridData( GridData.FILL_BOTH );		gdCNVSelection.heightHint = iSize;		cnvSelection.setLayoutData( gdCNVSelection );		cnvSelection.setFill( fCurrent );		cnvSelection.addMouseListener( this );		// THE BUTTON		btnDown = new Button( cmpContentInner, SWT.ARROW | SWT.DOWN );		GridData gdBDown = new GridData( GridData.FILL );		gdBDown.verticalAlignment = GridData.BEGINNING;		gdBDown.widthHint = iSize - 2;		gdBDown.heightHint = iSize;		btnDown.setLayoutData( gdBDown );		btnDown.addSelectionListener( this );		addDisposeListener( this );		Listener listener = new Listener( ) {			public void handleEvent( Event event )			{				handleEventCanvas( event );				return;			}		};		int[] textEvents = {				SWT.KeyDown,				SWT.Traverse,				SWT.FocusIn,				SWT.FocusOut		};		for ( int i = 0; i < textEvents.length; i++ )		{			cnvSelection.addListener( textEvents[i], listener );		}	}