Bug 214572 Implement IAggregationCellViewProvider for crosstab/chart integration
This interface implements the model logic for the designer UI, when the users design a crosstab with charts. Note that it is independent from the multi-view feature. /** * Return the name of this view */ String getViewName( ); // this should simply return "chart" /** * Returns if the given aggregation cell matches this view */ boolean matchView( AggregationCellHandle cell ); Returns true if chart is supported in this type of aggregation cell /** * Switches given aggregation cell to this view */ void switchView( AggregationCellHandle cell ); create a chart inside the aggregation cell (and remove the data elements). This method is called when the UI tries to switch the cell contents from data element to chart. /** * Restores given aggregation cell to previous view */ void restoreView( AggregationCellHandle cell );
chart/org.eclipse.birt.chart.reportitem.ui/src/org/eclipse/birt/chart/reportitem/ui/ReportDataServiceProvider.java
*/
		public IDataQueryDefinition createBaseQuery( List columnExpression )
				throws DataException
		{
			QueryDefinition queryDefn = new QueryDefinition( );
			int maxRow = getMaxRow( );
			queryDefn.setMaxRows( maxRow );
			queryDefn.setDataSetName( getDataSetFromHandle( ).getQualifiedName( ) );
			for ( int i = 0; i < columnExpression.size( ); i++ )
			{
				String expr = (String) columnExpression.get( i );
				Binding colBinding = new Binding( expr );
				colBinding.setExpression( new ScriptExpression( expr ) );
				queryDefn.addBinding( colBinding );
				fNameSet.add( expr );
			}
			generateGroupBindings( queryDefn );
			return queryDefn;
		}
		/*
		 * (non-Javadoc)
		 * 
		 * @see org.eclipse.birt.chart.reportitem.AbstractChartBaseQueryGenerator#createBaseQuery(org.eclipse.birt.data.engine.api.IDataQueryDefinition)
		 */
		public IDataQueryDefinition createBaseQuery( IDataQueryDefinition parent )
		{
			throw new UnsupportedOperationException( "Don't be implemented in the class." ); 
		}
	} 
}