/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics;
import com.opengamma.engine.ComputationTargetResolver;
import com.opengamma.engine.function.InMemoryFunctionRepository;
import com.opengamma.engine.function.config.FunctionRepositoryFactory;
import com.opengamma.engine.view.compilation.CompiledViewDefinition;
/**
* A grid for displaying primitives analytics data.
*/
/* package */class PrimitivesAnalyticsGrid extends MainAnalyticsGrid<MainGridViewport> {
private final PrimitivesGridStructure _gridStructure;
/* package */PrimitivesAnalyticsGrid(final CompiledViewDefinition compiledViewDef, final String gridId, final ComputationTargetResolver targetResolver,
final FunctionRepositoryFactory functions, final ViewportListener viewportListener) {
this(PrimitivesGridStructure.create(compiledViewDef), gridId, targetResolver, functions, viewportListener);
}
/* package */PrimitivesAnalyticsGrid(final PrimitivesGridStructure gridStructure, final String gridId, final ComputationTargetResolver targetResolver,
final FunctionRepositoryFactory functions, final ViewportListener viewportListener) {
super(AnalyticsView.GridType.PRIMITIVES, gridId, targetResolver, functions, viewportListener);
_gridStructure = gridStructure;
}
/**
* @param viewportDefinition Defines the extent and properties of the viewport
* @param callbackId ID that will be passed to listeners when the grid's data changes
* @param structureCallbackId ID that will be passed to listeners when the grid's structure changes
* @param cache The current results
* @return The viewport
*/
@Override
protected MainGridViewport createViewport(ViewportDefinition viewportDefinition, String callbackId, String structureCallbackId, ResultsCache cache) {
return new PrimitivesGridViewport(getGridStructure(), callbackId, structureCallbackId, viewportDefinition, getViewCycle(), cache);
}
@Override
MainGridStructure getGridStructure() {
return _gridStructure;
}
/**
* Factory method for creating a primitives grid that doesn't contain any data.
*
* @return An empty primitives grid
*/
/* package */static PrimitivesAnalyticsGrid empty(String gridId) {
return new PrimitivesAnalyticsGrid(PrimitivesGridStructure.empty(), gridId, new DummyTargetResolver(),
FunctionRepositoryFactory.constructRepositoryFactory(new InMemoryFunctionRepository()), new NoOpViewportListener());
}
}