13b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardpackage autotest.tko; 23b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard 33b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport autotest.common.JsonRpcCallback; 43b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport autotest.common.Utils; 53b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport autotest.common.ui.SimpleDialog; 63b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard 7a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showardimport com.google.gwt.event.dom.client.ClickEvent; 8a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showardimport com.google.gwt.event.dom.client.ClickHandler; 93b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport com.google.gwt.json.client.JSONArray; 103b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport com.google.gwt.json.client.JSONObject; 113b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport com.google.gwt.json.client.JSONString; 123b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport com.google.gwt.json.client.JSONValue; 138a7f36583afe076a7198d1b34fe109aa491dc277jamesrenimport com.google.gwt.user.client.ui.Anchor; 143b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardimport com.google.gwt.user.client.ui.FlexTable; 153b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard 163b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showardclass MetricsPlot extends Plot { 173b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard public MetricsPlot() { 18fbdab0b28c8084441225523a68db7f0ef63f5ca0showard super("create_metrics_plot"); 193b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard } 203b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard 213b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard /** 223b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard * drilldownParams contains: 233b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard * * query - SQL query for the selected series 243b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard * * series - name of the selected series 253b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard * * param - parameter to fill in query for the selected data point 263b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard */ 273b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard @Override 283b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard protected void showDrilldownImpl(JSONObject drilldownParams) { 293b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard String query = Utils.jsonToString(drilldownParams.get("query")); 303b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard final String series = Utils.jsonToString(drilldownParams.get("series")); 313b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard final String param = Utils.jsonToString(drilldownParams.get("param")); 323b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard 333b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard JSONObject params = new JSONObject(); 343b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard params.put("query", new JSONString(query)); 353b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard params.put("param", new JSONString(param)); 363b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard rpcProxy.rpcCall("execute_query_with_param", params, new JsonRpcCallback() { 373b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard @Override 383b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard public void onSuccess(JSONValue result) { 393b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard JSONArray data = result.isArray(); 408a7f36583afe076a7198d1b34fe109aa491dc277jamesren 413b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard String title = series + " for " + param; 423b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard FlexTable contents = new FlexTable(); 433b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard final SimpleDialog drill = new SimpleDialog(title, contents); 448a7f36583afe076a7198d1b34fe109aa491dc277jamesren 453b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard for (int i = 0; i < data.size(); i++) { 463b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard final JSONArray row = data.get(i).isArray(); 473b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard final int testId = (int) row.get(0).isNumber().doubleValue(); 483b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard String yValue = Utils.jsonToString(row.get(1)); 493b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard 508a7f36583afe076a7198d1b34fe109aa491dc277jamesren Anchor link = new Anchor(yValue); 51a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard link.addClickHandler(new ClickHandler() { 52a5e4d84c9616b0a987e904d3b1d1d3fd9ca1be86showard public void onClick(ClickEvent event) { 533b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard drill.hide(); 543b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard listener.onSelectTest(testId); 553b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard } 563b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard }); 573b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard contents.setWidget(i, 0, link); 583b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard } 598a7f36583afe076a7198d1b34fe109aa491dc277jamesren 603b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard drill.center(); 613b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard } 623b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard }); 633b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard } 643b2b93007ba7ca0a8ace90f2ac0c2263ccbcbdf8showard} 65