package com.griddynamics.jagger.webclient.client.handler;
import com.griddynamics.jagger.dbapi.model.*;
import com.sencha.gxt.widget.core.client.event.CheckChangeEvent;
import com.sencha.gxt.widget.core.client.tree.Tree;
import java.util.HashSet;
import java.util.Set;
/**
* User: amikryukov
* Date: 11/27/13
*/
public class DetailsNodeHandler extends TreeAwareHandler<DetailsNode> {
@Override
public void onCheckChange(CheckChangeEvent<DetailsNode> event) {
DetailsNode detailsNode = event.getItem();
Set<MetricNode> testScopePlotNames = new HashSet<MetricNode>();
for (TestDetailsNode test: detailsNode.getTests()) {
testScopePlotNames.addAll(test.getMetrics());
}
MetricGroupNode<PlotNode> sessionScopeNode = detailsNode.getSessionScopeNode();
// null when multiple sessions selected
if (sessionScopeNode != null) {
testScopePlotNames.addAll(sessionScopeNode.getMetrics());
}
if (Tree.CheckState.CHECKED.equals(event.getChecked())) {
testPlotFetcher.fetchPlots(testScopePlotNames);
} else {
testPlotFetcher.removePlots(testScopePlotNames);
}
}
}