markerTypeIndex = markerIndex;
		public void paintControl( PaintEvent e )		{			GC gc = e.gc;			int markerIndex = ( (Integer) e.widget.getData( ) ).intValue( );			int markerLength = LiteralHelper.markerTypeSet.getNames( ).length;			String typeName = null;			if ( markerIndex < markerLength )			{				typeName = LiteralHelper.markerTypeSet.getNames( )[markerIndex];				gc.setBackground( Display.getDefault( )						.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );				gc.fillRectangle( 0, 0, MARKER_BLOCK_WIDTH, MARKER_BLOCK_HEIGHT );			}			int lineWidth = 1;			if ( getMarker( ).isVisible( ) )			{				gc.setForeground( Display.getDefault( )						.getSystemColor( SWT.COLOR_BLACK ) );			}			else			{				gc.setForeground( Display.getDefault( )						.getSystemColor( SWT.COLOR_GRAY ) );			}			gc.setLineWidth( lineWidth );			int x = lineWidth - 1;			int y = lineWidth - 1;			int width = MARKER_BLOCK_WIDTH + 1 - 2 * lineWidth;			int height = MARKER_BLOCK_HEIGHT + 1 - 2 * lineWidth;			if ( markerIndex / MARKER_ROW_MAX_NUMBER < markerLength					/ MARKER_ROW_MAX_NUMBER )			{				// Remove the bottom border if not in the last row				height++;			}			if ( ( markerIndex + 1 ) % MARKER_ROW_MAX_NUMBER != 0 )			{				// Remove the right border if not in the rightmost column				width++;			}			if ( typeName == null )			{				if ( markerIndex > markerLength )				{					// Remove the left and right border of the fake node unless					// it's next to the last					x = -1;					width += 2;				}				// Remove the bottom border of the fake node				height++;			}			// Draw the border			gc.drawRectangle( x, y, width, height );			// Draw the boarder of current marker			if ( getMarker( ).getType( ).getName( ).equals( typeName ) )			{				gc.setForeground( Display.getDefault( )						.getSystemColor( SWT.COLOR_RED ) );				gc.drawRectangle( 1,						1,						MARKER_BLOCK_WIDTH - 2,						MARKER_BLOCK_HEIGHT - 2 );			}			// Draw the marker			if ( typeName != null )			{				paintMarker( gc,						MarkerImpl.create( MarkerType.getByName( typeName ), 4 ),						LocationImpl.create( MARKER_BLOCK_WIDTH / 2,								MARKER_BLOCK_HEIGHT / 2 ) );			}		}