<html>
<head>
  <title>query2-sk demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <script src="/res/common/js/common.js"></script>
  <script src="/res/imp/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <link rel=import href="query2-sk.html">
</head>
<body>
  <h1>Query2</h1>

  <query2-sk id=basic></query2-sk>
  <p>
    <b>Query String:</b>
    <query-summary-sk id=q selection=""></query-summary-sk>
    <query-summary-sk id=q-delayed selection=""></query-summary-sk>
    <button id=swap>Swap Paramset</button>
  </p>

  <script type="text/javascript" charset="utf-8">
    var n = 0;
    var paramset = {
        "config": ["565", "8888"],
        "type": ["CPU", "GPU"],
        "units": ["ms", "bytes"],
        "test": [
          "DeferredSurfaceCopy_discardable",
          "DeferredSurfaceCopy_nonDiscardable",
          "GLInstancedArraysBench_instance",
          "GLInstancedArraysBench_one_0",
          "GLInstancedArraysBench_one_1",
          "GLInstancedArraysBench_one_2",
          "GLInstancedArraysBench_one_4",
          "GLInstancedArraysBench_one_8",
          "GLInstancedArraysBench_two_0",
          "GLInstancedArraysBench_two_1",
          "GLInstancedArraysBench_two_2",
          "GLInstancedArraysBench_two_4",
          "GLInstancedArraysBench_two_8",
          "GLVec4ScalarBench_scalar_1_stage",
          "GLVec4ScalarBench_scalar_2_stage",
        ],
      };
    var paramset2 = {
        "config": ["565"],
        "type": ["CPU", "GPU"],
        "test": [
          "DeferredSurfaceCopy_discardable",
          "DeferredSurfaceCopy_nonDiscardable",
        ],
      };
    $$$('#basic').setParamset(paramset);
    setTimeout(function() {
      $$$('#basic').setCurrentQuery("config=565&type=GPU");
      $$$('#q').selection = $$$('#basic').current_query;
    }, 10);

    $$$('#basic').addEventListener('query-change', function(e){
      $$$('#q').selection = e.detail.q;
      console.log('query-change');
    });

    $$$('#basic').addEventListener('query-change-delayed', function(e){
      $$$('#q-delayed').selection = e.detail.q;
      console.log('query-change-delayed');
    });

    $$$('#swap').addEventListener('click', function(e){
      n = (n + 1) % 2;
      $$$('#basic').setParamset([paramset, paramset2][n]);
    });

  </script>
</body>
</html>
