designObject = cmDT.getBlock();
designObject = sourceObject.getSource();
	protected void groupPrimitive( PrimitiveRenderEvent pre, boolean drawText )	{		if ( _iun == null )		{			logger.log( ILogger.WARNING,					Messages.getString( "exception.missing.component.interaction", getULocale( ) ) ); //$NON-NLS-1$			return;		}			// For now only group series elements		if ( pre.getSource( ) instanceof StructureSource )		{			StructureSource sourceObject = (StructureSource) pre.getSource( );			Series seDT = (Series) getElementFromSource( sourceObject, StructureType.SERIES );			if ( seDT != null )			{				String groupIdentifier = null;				try				{					// Depending on legend coloring, we group differently					if ( isColoredByCategories( )							&& getElementFromSource( sourceObject,									StructureType.SERIES_DATA_POINT ) != null )					{						seDT = findCategorySeries( seDT );						groupIdentifier = String.valueOf( seDT.hashCode( ) );						// Group by categories						DataPointHints dph = (DataPointHints) getElementFromSource( sourceObject,								StructureType.SERIES_DATA_POINT );						groupIdentifier += "index"; // $NON-NLS-1$						groupIdentifier += ( (DataPointHints) dph ).getIndex( );					}					else					{						seDT = findDesignTimeSeries( seDT );						groupIdentifier = String.valueOf( seDT.hashCode( ) );					}				}				catch ( ChartException e )				{					logger.log( e );					return;				}				if ( drawText )				{					String id = Integer.toString( pre.hashCode( ) );					List components = (List) labelPrimitives.get( seDT );					if ( components == null )					{						components = new ArrayList( );						labelPrimitives.put( seDT, components );					}					components.add( id );					// Create group element that will contain the drawing					// instructions that corresponds to the event					Element outerGroup = svg_g2d.createElement( "g" ); //$NON-NLS-1$					svg_g2d.pushParent( outerGroup );					Element primGroup = svg_g2d.createElement( "g" ); //$NON-NLS-1$					outerGroup.appendChild( primGroup );					svg_g2d.pushParent( primGroup );					primGroup.setAttribute( "id", groupIdentifier + "_" + id ); //$NON-NLS-1$ //$NON-NLS-2$					primGroup.setAttribute( "style", "visibility:visible;" ); //$NON-NLS-1$ //$NON-NLS-2$					outerGroup.setAttribute( "id", groupIdentifier + "_" + id + "_g" ); //$NON-NLS-1$ //$NON-NLS-2$					outerGroup.setAttribute( "style", "visibility:visible;" ); //$NON-NLS-1$ //$NON-NLS-2$				}				else				// Non-text				{					String id = Integer.toString( pre.hashCode( ) );					List components = (List) componentPrimitives.get( seDT );					if ( components == null )					{						components = new ArrayList( );						componentPrimitives.put( seDT, components );					}					// May have to group drawing instructions that come from					// the same primitive render events.					String idTemp = id;					int counter = 1;					while ( components.contains( idTemp ) )					{						idTemp = id + "@" + counter; //$NON-NLS-1$						counter++;					}					components.add( idTemp );					// Create group element that will contain the drawing					// instructions that corresponds to the event					Element primGroup = svg_g2d.createElement( "g" ); //$NON-NLS-1$					svg_g2d.pushParent( primGroup );					primGroup.setAttribute( "id", groupIdentifier + "_" + idTemp ); //$NON-NLS-1$ //$NON-NLS-2$					primGroup.setAttribute( "style", "visibility:visible;" ); //$NON-NLS-1$ //$NON-NLS-2$					svg_g2d.setDeferStrokColor( primGroup );				}			}			else{				final Chart cmDT = _iun.getDesignTimeModel( );				Object designObject  = null;							//check to see if this is the title block				if (getElementFromSource( sourceObject,	StructureType.TITLE ) != null){					designObject = cmDT.getTitle();				}				else if (getElementFromSource( sourceObject,	StructureType.CHART_BLOCK ) != null){					designObject = cmDT.getBlock();				}								if (designObject != null){					String groupIdentifier = String.valueOf( designObject.hashCode( ) );					String id = Integer.toString( pre.hashCode( ) );					List components = (List) componentPrimitives.get( designObject );					if ( components == null )					{						components = new ArrayList( );						componentPrimitives.put( designObject, components );					}						// May have to group drawing instructions that come from					// the same primitive render events.					String idTemp = id;					int counter = 1;					while ( components.contains( idTemp ) )					{						idTemp = id + "@" + counter; //$NON-NLS-1$						counter++;					}						components.add( idTemp );						// Create group element that will contain the drawing					// instructions that corresponds to the event					Element primGroup = svg_g2d.createElement( "g" ); //$NON-NLS-1$					svg_g2d.pushParent( primGroup );					primGroup.setAttribute( "id", groupIdentifier + "_" + idTemp ); //$NON-NLS-1$ //$NON-NLS-2$					primGroup.setAttribute( "style", "visibility:visible;" ); //$NON-NLS-1$ //$NON-NLS-2$						svg_g2d.setDeferStrokColor( primGroup );					}			}					}	}