package org.webcat.reporter;
import org.webcat.core.objectquery.AbstractQueryAssistantModel;
import org.webcat.core.objectquery.ObjectQuerySurrogate;
import org.webcat.core.objectquery.QueryAssistantDescriptor;
import org.webcat.core.objectquery.QueryAssistantManager;
import org.webcat.ui.generators.JavascriptGenerator;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WORequest;
import com.webobjects.appserver.WOResponse;
import com.webobjects.eocontrol.EOQualifier;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSDictionary;
import com.webobjects.foundation.NSMutableArray;
import com.webobjects.foundation.NSMutableDictionary;
import com.webobjects.foundation.NSMutableSet;
/**
*
* @author Tony Allevato
* @version $Id: DescribeReportInputsPage.java,v 1.1 2010/05/11 14:51:48 aallowat Exp $
*/
public class DescribeReportInputsPage extends ReporterComponent
{
//~ Constructors ..........................................................
// ----------------------------------------------------------
public DescribeReportInputsPage(WOContext context)
{
super(context);
}
//~ KVC attributes (must be public) .......................................
public NSArray<ReportDataSet> dataSets;
public ReportDataSet dataSet;
public int dataSetIndex;
public NSDictionary<String, Object> parameter;
public String reportDescription;
//~ Methods ...............................................................
// ----------------------------------------------------------
public void appendToResponse(WOResponse response, WOContext context)
{
dataSets = localReportTemplate().dataSets();
if (dataSets != null)
{
objectQuerySurrogates = new NSMutableArray<ObjectQuerySurrogate>();
for (int i = 0; i < dataSets.count(); i++)
{
objectQuerySurrogates.addObject(new ObjectQuerySurrogate(
dataSets.objectAtIndex(i).wcEntityName()));
}
}
parameterValues = new NSMutableDictionary<String, Object>();
super.appendToResponse(response, context);
}
// ----------------------------------------------------------
public NSArray<QueryAssistantDescriptor> queryAssistantsForDataSet()
{
String entityName = dataSet.wcEntityName();
return QueryAssistantManager.getInstance().assistantsForEntity(
entityName);
}
// ----------------------------------------------------------
public ObjectQuerySurrogate objectQuerySurrogateForDataSet()
{
return objectQuerySurrogates.objectAtIndex(dataSetIndex);
}
// ----------------------------------------------------------
public String titleForDataSetPageModule()
{
return "Data set: " + dataSet.name() + " (" +
(dataSetIndex + 1) + " of " + dataSets.count() + ")";
}
// ----------------------------------------------------------
public Object valueForParameter()
{
return parameterValues.objectForKey(parameter.objectForKey("name"));
}
// ----------------------------------------------------------
public void setValueForParameter(Object value)
{
parameterValues.setObjectForKey(value, parameter.objectForKey("name"));
}
// ----------------------------------------------------------
public WOActionResults changeReportTemplate()
{
clearLocalReportState();
return pageWithName(PickTemplateToGeneratePage.class);
}
// ----------------------------------------------------------
public WOActionResults generateReport()
{
String desc = reportDescription;
if (desc == null)
{
desc = defaultDescription();
}
setLocalReportDescription(desc);
commitReportGeneration(objectQuerySurrogates, dataSets);
return pageWithName(GeneratedReportPage.class);
}
// ----------------------------------------------------------
public String defaultDescription()
{
return localReportTemplate().name();
}
//~ Static/instance variables .............................................
private NSMutableArray<ObjectQuerySurrogate> objectQuerySurrogates;
private NSMutableDictionary<String, Object> parameterValues;
}