<html>
<head>
  <title>query-dialog-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="../../node_modules/native-promise-only/npo.js"></script>
  <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="bower_components/d3/d3.js"></script>
  <script src="../common/js/common.js"></script>
  <script src="testdata.js"></script>

  <link rel="import" href="bower_components/polymer/polymer.html">
  <link rel="import" href="query-dialog-sk.html">
  <link rel="import" href="bower_components/paper-button/paper-button.html">

</head>
<body>
  <h1>query-dialog-sk demo</h1>

  <dom-module id="main-document-element">
    <template>
      <query-dialog-sk id="queryDialog"></query-dialog-sk>
      <paper-button on-click="_handleClick" raised>Open Dialog</paper-button>
      <br><br>
      Selection: &quot;{{_selection}}&quot;
    </template>

    <script>
      HTMLImports.whenReady(function () {
        Polymer({
          is: 'main-document-element',

          properties: {
            _selection: {
              type: String,
              value: ''
            }
          },

          ready: function() {
            this.$.queryDialog.queryEle.setParamSet(testdata.paramSet);
            this.listen(this.$.queryDialog, 'edit', '_handleEditEvent');
          },

          _handleClick: function() {
            this.$.queryDialog.open(this._selection);
          },

          _handleEditEvent: function(ev) {
            this._selection=ev.detail;
          }
        });
      });
    </script>
  </dom-module>

  <!-- Instantite the element defined above -->
  <main-document-element></main-document-element>

</body>
</html>
