package com.griddynamics.jagger.webclient.client.components;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.griddynamics.jagger.dbapi.dto.SummaryIntegratedDto;
import com.griddynamics.jagger.dbapi.model.MetricNode;
import com.griddynamics.jagger.dbapi.model.WebClientProperties;
import com.griddynamics.jagger.dbapi.dto.SessionDataDto;
import java.util.*;
/**
* Created with IntelliJ IDEA.
* User: kirilkadurilka
* Date: 20.03.13
* Time: 16:07
* To change this template use File | Settings | File Templates.
*/
public class SummaryPanel extends Composite {
interface SummaryPanelUiBinder extends UiBinder<Widget, SummaryPanel> {
}
private static SummaryPanelUiBinder ourUiBinder = GWT.create(SummaryPanelUiBinder.class);
@UiField
VerticalPanel pane;
private SessionComparisonPanel sessionComparisonPanel;
private Set<SessionDataDto> active = Collections.EMPTY_SET;
public SummaryPanel() {
initWidget(ourUiBinder.createAndBindUi(this));
}
public HashMap<MetricNode, SummaryIntegratedDto> getCachedMetrics() {
return sessionComparisonPanel.getCachedMetrics();
}
public SessionComparisonPanel getSessionComparisonPanel() {
return sessionComparisonPanel;
}
public void updateSessions(Set<SessionDataDto> chosenSessions, WebClientProperties webClientProperties, DateTimeFormat dateFormatter) {
if (chosenSessions.size() > 0){
//show sessions comparison
pane.clear();
sessionComparisonPanel = new SessionComparisonPanel(chosenSessions, pane.getOffsetWidth(), webClientProperties, dateFormatter);
pane.add(sessionComparisonPanel);
}else{
pane.clear();
}
active = chosenSessions;
}
public Set<String> getSessionIds(){
HashSet<String> ids = new HashSet<String>(active.size());
for (SessionDataDto session : active){
ids.add(session.getSessionId());
}
return ids;
}
}