1 package autotest.tko; 2 3 import autotest.common.CustomHistory.HistoryToken; 4 import autotest.common.ui.ExtendedListBox; 5 import autotest.common.ui.TabView; 6 import autotest.tko.TableView.TableSwitchListener; 7 8 import com.google.gwt.event.dom.client.ChangeEvent; 9 import com.google.gwt.event.dom.client.ChangeHandler; 10 import com.google.gwt.user.client.ui.DeckPanel; 11 12 import java.util.Map; 13 14 public class GraphingView extends TabView { 15 16 private ExtendedListBox frontendSelection = new ExtendedListBox(); 17 private MetricsPlotFrontend metricsPlotFrontend = new MetricsPlotFrontend(this); 18 private MachineQualHistogramFrontend machineQualHistogramFrontend = 19 new MachineQualHistogramFrontend(this); 20 private ExistingGraphsFrontend existingGraphsFrontend = new ExistingGraphsFrontend(this); 21 private DeckPanel controlPanel = new DeckPanel(); 22 private GraphingFrontend frontends[] = { 23 metricsPlotFrontend, 24 machineQualHistogramFrontend, 25 existingGraphsFrontend, 26 }; 27 28 public GraphingView(TableSwitchListener listener) { 29 metricsPlotFrontend.setListener(listener); 30 machineQualHistogramFrontend.setListener(listener); 31 } 32 33 @Override 34 public void initialize() { 35 super.initialize(); 36 frontendSelection.addItem("Metrics Plot", metricsPlotFrontend.getFrontendId()); 37 frontendSelection.addItem("Machine Qualification Histogram", 38 machineQualHistogramFrontend.getFrontendId()); 39 frontendSelection.addItem("Existing Graphs", existingGraphsFrontend.getFrontendId()); 40 41 frontendSelection.addChangeHandler(new ChangeHandler() { 42 public void onChange(ChangeEvent event) { 43 showSelectedView(); 44 updateHistory(); 45 } 46 }); 47 48 controlPanel.add(metricsPlotFrontend); 49 controlPanel.add(machineQualHistogramFrontend); 50 controlPanel.add(existingGraphsFrontend); 51 controlPanel.showWidget(0); 52 53 addWidget(frontendSelection, "graphing_type"); 54 addWidget(controlPanel, "graphing_frontend"); 55 } 56 57 @Override 58 public String getElementId() { 59 return "graphing_view"; 60 } 61 62 private GraphingFrontend getSelectedFrontend() { 63 return frontends[frontendSelection.getSelectedIndex()]; 64 } 65 66 @Override 67 public void refresh() { 68 super.refresh(); 69 getSelectedFrontend().refresh(); 70 } 71 72 @Override 73 public void display() { 74 super.display(); 75 CommonPanel.getPanel().setConditionVisible(false); 76 } 77 78 @Override 79 public HistoryToken getHistoryArguments() { 80 HistoryToken args = super.getHistoryArguments(); 81 args.put("view", getSelectedFrontend().getFrontendId()); 82 getSelectedFrontend().addToHistory(args); 83 return args; 84 } 85 86 @Override 87 public void handleHistoryArguments(Map<String, String> arguments) { 88 super.handleHistoryArguments(arguments); 89 String frontendId = arguments.get("view"); 90 frontendSelection.selectByValue(frontendId); 91 for (GraphingFrontend frontend : frontends) { 92 if (frontend.getFrontendId().equals(frontendId)) { 93 frontend.handleHistoryArguments(arguments); 94 break; 95 } 96 } 97 showSelectedView(); 98 } 99 100 private void showSelectedView() { 101 int index = frontendSelection.getSelectedIndex(); 102 controlPanel.showWidget(index); 103 frontends[index].refresh(); 104 } 105 } 106