private void onMetricsTabSelected() { testsMetricsPanel.showWidget(1); mainTabPanel.forceLayout(); for (String plotId : chosenPlots.keySet()) { if (plotPanel.getElementById(plotId) == null) { renderPlots(plotPanel, chosenPlots.get(plotId), plotId); scrollPanelMetrics.scrollToBottom(); } } }
private void onTrendsTabSelected() { testsMetricsPanel.showWidget(0); mainTabPanel.forceLayout(); if (!chosenMetrics.isEmpty() && hasChanged) { plotTrendsPanel.clear(); for (Map.Entry<String, MetricDto> entry : chosenMetrics.entrySet()) { renderPlots( plotTrendsPanel, Arrays.asList(entry.getValue().getPlotSeriesDto()), entry.getKey(), entry.getValue().getPlotSeriesDto().getYAxisMin(), true); } scrollPanelTrends.scrollToBottom(); hasChanged = false; } }
private void renderPlots( HTMLPanel panel, List<PlotSeriesDto> plotSeriesDtoList, String id, double yMinimum, boolean isMetric) { panel.add(loadIndicator); SimplePlot redrawingPlot = null; VerticalPanel plotGroupPanel = new VerticalPanel(); plotGroupPanel.setWidth("100%"); plotGroupPanel.getElement().setId(id); for (PlotSeriesDto plotSeriesDto : plotSeriesDtoList) { Markings markings = null; if (plotSeriesDto.getMarkingSeries() != null) { markings = new Markings(); for (MarkingDto plotDatasetDto : plotSeriesDto.getMarkingSeries()) { double x = plotDatasetDto.getValue(); markings.addMarking( new Marking() .setX(new Range(x, x)) .setLineWidth(1) .setColor(plotDatasetDto.getColor())); } markingsMap.put(id, new TreeSet<MarkingDto>(plotSeriesDto.getMarkingSeries())); } final SimplePlot plot = createPlot(id, markings, plotSeriesDto.getXAxisLabel(), yMinimum, isMetric); redrawingPlot = plot; PlotModel plotModel = plot.getModel(); for (PlotDatasetDto plotDatasetDto : plotSeriesDto.getPlotSeries()) { SeriesHandler handler = plotModel.addSeries(plotDatasetDto.getLegend(), plotDatasetDto.getColor()); // Populate plot with data for (PointDto pointDto : plotDatasetDto.getPlotData()) { handler.add(new DataPoint(pointDto.getX(), pointDto.getY())); } } // Add X axis label Label xLabel = new Label(plotSeriesDto.getXAxisLabel()); xLabel.addStyleName(getResources().css().xAxisLabel()); Label plotHeader = new Label(plotSeriesDto.getPlotHeader()); plotHeader.addStyleName(getResources().css().plotHeader()); Label plotLegend = new Label("PLOT LEGEND"); plotLegend.addStyleName(getResources().css().plotLegend()); VerticalPanel vp = new VerticalPanel(); vp.setWidth("100%"); Label panLeftLabel = new Label(); panLeftLabel.addStyleName(getResources().css().panLabel()); panLeftLabel.getElement().appendChild(new Image(getResources().getArrowLeft()).getElement()); panLeftLabel.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { plot.pan(new Pan().setLeft(-100)); } }); Label panRightLabel = new Label(); panRightLabel.addStyleName(getResources().css().panLabel()); panRightLabel .getElement() .appendChild(new Image(getResources().getArrowRight()).getElement()); panRightLabel.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { plot.pan(new Pan().setLeft(100)); } }); Label zoomInLabel = new Label("Zoom In"); zoomInLabel.addStyleName(getResources().css().zoomLabel()); zoomInLabel.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { plot.zoom(); } }); Label zoomOutLabel = new Label("Zoom Out"); zoomOutLabel.addStyleName(getResources().css().zoomLabel()); zoomOutLabel.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { plot.zoomOut(); } }); FlowPanel zoomPanel = new FlowPanel(); zoomPanel.addStyleName(getResources().css().zoomPanel()); zoomPanel.add(panLeftLabel); zoomPanel.add(panRightLabel); zoomPanel.add(zoomInLabel); zoomPanel.add(zoomOutLabel); vp.add(plotHeader); vp.add(zoomPanel); vp.add(plot); vp.add(xLabel); // Will be added if there is need it // vp.add(plotLegend); plotGroupPanel.add(vp); } int loadingId = panel.getWidgetCount() - 1; panel.remove(loadingId); panel.add(plotGroupPanel); // Redraw plot if (redrawingPlot != null) { redrawingPlot.redraw(); } }
private boolean isMaxPlotCountReached() { return plotPanel.getWidgetCount() >= MAX_PLOT_COUNT; }