Issue #1495 update Product Browser to load all ensemble members
Former-commit-id:4854df66bc
[formerly 38af9c697b1bb96e5f6f032eb9fc2055a9e8f7ef] Former-commit-id:9aafe61075
This commit is contained in:
parent
5c5201ad6e
commit
6ff281dc98
2 changed files with 54 additions and 3 deletions
|
@ -20,6 +20,7 @@ package com.raytheon.uf.viz.productbrowser;
|
|||
* further licensing information.
|
||||
**/
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -198,12 +199,15 @@ public abstract class AbstractRequestableProductBrowserDataDefinition<T extends
|
|||
constructResource();
|
||||
}
|
||||
|
||||
private void constructResource() {
|
||||
protected void constructResource() {
|
||||
ResourcePair pair = new ResourcePair();
|
||||
pair.setResourceData(resourceData);
|
||||
pair.setLoadProperties(loadProperties);
|
||||
pair.setProperties(new ResourceProperties());
|
||||
IDescriptor currDesc = null;
|
||||
constructResource(Arrays.asList(pair));
|
||||
}
|
||||
|
||||
protected void constructResource(List<ResourcePair> pairs) {
|
||||
// retrieves the correct editor
|
||||
getEditor();
|
||||
IDisplayPaneContainer container = getEditor();
|
||||
|
@ -213,7 +217,9 @@ public abstract class AbstractRequestableProductBrowserDataDefinition<T extends
|
|||
AbstractRenderableDisplay display = (AbstractRenderableDisplay) container
|
||||
.getActiveDisplayPane().getRenderableDisplay();
|
||||
display = (AbstractRenderableDisplay) display.createNewDisplay();
|
||||
display.getDescriptor().getResourceList().add(pair);
|
||||
for (ResourcePair pair : pairs) {
|
||||
display.getDescriptor().getResourceList().add(pair);
|
||||
}
|
||||
Bundle b = new Bundle();
|
||||
b.setDisplays(new AbstractRenderableDisplay[] { display });
|
||||
new BundleProductLoader(EditorUtil.getActiveVizContainer(), b).schedule();
|
||||
|
|
|
@ -47,9 +47,12 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
|
|||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
|
||||
import com.raytheon.uf.viz.core.drawables.ResourcePair;
|
||||
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.level.LevelMappingFactory;
|
||||
import com.raytheon.uf.viz.core.rsc.DisplayType;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceType;
|
||||
import com.raytheon.uf.viz.derivparam.library.DerivParamDesc;
|
||||
import com.raytheon.uf.viz.derivparam.library.DerivedParameterGenerator;
|
||||
|
@ -129,6 +132,48 @@ public class GridProductBrowserDataDefinition extends
|
|||
return new GridResourceData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void constructResource(String[] selection, ResourceType type) {
|
||||
GridInventory inventory = getInventory();
|
||||
if (inventory == null) {
|
||||
super.constructResource(selection, type);
|
||||
return;
|
||||
}
|
||||
if (type != null) {
|
||||
loadProperties.setResourceType(type);
|
||||
}
|
||||
HashMap<String, RequestConstraint> parameters = getProductParameters(
|
||||
selection, order);
|
||||
List<String> ensembles = null;
|
||||
try {
|
||||
ensembles = inventory.getEnsembles(parameters);
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
|
||||
}
|
||||
if (ensembles != null && ensembles.size() > 1) {
|
||||
Collections.sort(ensembles);
|
||||
List<ResourcePair> pairs = new ArrayList<ResourcePair>();
|
||||
for (String ensemble : ensembles) {
|
||||
ResourcePair pair = new ResourcePair();
|
||||
resourceData = getResourceData();
|
||||
HashMap<String, RequestConstraint> newParameters = new HashMap<String, RequestConstraint>(
|
||||
parameters);
|
||||
newParameters.put(GridConstants.ENSEMBLE_ID,
|
||||
new RequestConstraint(ensemble));
|
||||
resourceData.setMetadataMap(newParameters);
|
||||
pair.setResourceData(resourceData);
|
||||
pair.setLoadProperties(loadProperties);
|
||||
pair.setProperties(new ResourceProperties());
|
||||
pairs.add(pair);
|
||||
}
|
||||
constructResource(pairs);
|
||||
} else {
|
||||
resourceData = getResourceData();
|
||||
resourceData.setMetadataMap(parameters);
|
||||
constructResource();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] queryData(String param,
|
||||
HashMap<String, RequestConstraint> queryList) {
|
||||
|
|
Loading…
Add table
Reference in a new issue