Home | History | Annotate | Download | only in tko
      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