Skip to content

Commit

Permalink
Factor out a function to add metric forms.
Browse files Browse the repository at this point in the history
Change-Id: I4b8d7ce3334e8bc5184ba40eca34c757570d5f7f
Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
  • Loading branch information
Will Moss authored and tsuna committed May 25, 2012
1 parent aaaebcc commit ac6035b
Showing 1 changed file with 48 additions and 44 deletions.
92 changes: 48 additions & 44 deletions src/tsd/client/QueryUi.java
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,43 @@ protected <H extends EventHandler> void onEvent(final DomEvent<H> event) {
}
};

final MetricForm.MetricChangeHandler metric_change_handler =
new MetricForm.MetricChangeHandler() {
public void onMetricChange(final MetricForm metric) {
final int index = metrics.getWidgetIndex(metric);
metrics.getTabBar().setTabText(index, getTabTitle(metric));
}
private String getTabTitle(final MetricForm metric) {
final String metrictext = metric.getMetric();
final int last_period = metrictext.lastIndexOf('.');
if (last_period < 0) {
return metrictext;
}
return metrictext.substring(last_period + 1);
}
};

final EventsHandler updatey2range = new EventsHandler() {
protected <H extends EventHandler> void onEvent(final DomEvent<H> event) {
for (final Widget metric : metrics) {
if (!(metric instanceof MetricForm)) {
continue;
}
if (((MetricForm) metric).x1y2().getValue()) {
y2range.setEnabled(true);
y2log.setEnabled(true);
y2label.setEnabled(true);
y2format.setEnabled(true);
return;
}
}
y2range.setEnabled(false);
y2log.setEnabled(false);
y2label.setEnabled(false);
y2format.setEnabled(false);
}
};

/** List of known aggregation functions. Fetched once from the server. */
private final ArrayList<String> aggregators = new ArrayList<String>();

Expand Down Expand Up @@ -286,45 +323,7 @@ public void onClick(final ClickEvent event) {
table.setWidget(0, 3, hbox);
}
{
final MetricForm.MetricChangeHandler metric_change_handler =
new MetricForm.MetricChangeHandler() {
public void onMetricChange(final MetricForm metric) {
final int index = metrics.getWidgetIndex(metric);
metrics.getTabBar().setTabText(index, getTabTitle(metric));
}
private String getTabTitle(final MetricForm metric) {
final String metrictext = metric.getMetric();
final int last_period = metrictext.lastIndexOf('.');
if (last_period < 0) {
return metrictext;
}
return metrictext.substring(last_period + 1);
}
};
final EventsHandler updatey2range = new EventsHandler() {
protected <H extends EventHandler> void onEvent(final DomEvent<H> event) {
for (final Widget metric : metrics) {
if (!(metric instanceof MetricForm)) {
continue;
}
if (((MetricForm) metric).x1y2().getValue()) {
y2range.setEnabled(true);
y2log.setEnabled(true);
y2label.setEnabled(true);
y2format.setEnabled(true);
return;
}
}
y2range.setEnabled(false);
y2log.setEnabled(false);
y2label.setEnabled(false);
y2format.setEnabled(false);
}
};
final MetricForm metric = new MetricForm(refreshgraph);
metric.x1y2().addClickHandler(updatey2range);
metric.setMetricChangeHandler(metric_change_handler);
metrics.add(metric, "metric 1");
addMetricForm("metric 1", 0);
metrics.selectTab(0);
metrics.add(new InlineLabel("Loading..."), "+");
metrics.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() {
Expand All @@ -333,11 +332,7 @@ public void onBeforeSelection(final BeforeSelectionEvent<Integer> event) {
final int nitems = metrics.getWidgetCount();
if (item == nitems - 1) { // Last item: the "+" was clicked.
event.cancel();
final MetricForm metric = new MetricForm(refreshgraph);
metric.x1y2().addClickHandler(updatey2range);
metric.setMetricChangeHandler(metric_change_handler);
metric.setAggregators(aggregators);
metrics.insert(metric, "metric " + nitems, item);
final MetricForm metric = addMetricForm("metric " + nitems, item);
metrics.selectTab(item);
metric.setFocus(true);
}
Expand Down Expand Up @@ -431,6 +426,15 @@ private Grid makeAxesPanel() {
return grid;
}

private MetricForm addMetricForm(final String label, final int item) {
final MetricForm metric = new MetricForm(refreshgraph);
metric.x1y2().addClickHandler(updatey2range);
metric.setMetricChangeHandler(metric_change_handler);
metric.setAggregators(aggregators);
metrics.insert(metric, label, item);
return metric;
}

/**
* Small helper to build a radio button used to change the position of the
* key of the graph.
Expand Down

0 comments on commit ac6035b

Please sign in to comment.