| Index: sky/framework/sky-checkbox.sky
 | 
| diff --git a/sky/framework/sky-checkbox.sky b/sky/framework/sky-checkbox.sky
 | 
| index 009b69c326b87932c8822681bd10d49385ce0597..bac70abd4dfb60311a66674310e3e88cc94f5693 100644
 | 
| --- a/sky/framework/sky-checkbox.sky
 | 
| +++ b/sky/framework/sky-checkbox.sky
 | 
| @@ -1,14 +1,12 @@
 | 
|  <!--
 | 
| -// Copyright 2014 The Chromium Authors. All rights reserved.
 | 
| +// Copyright 2015 The Chromium Authors. All rights reserved.
 | 
|  // Use of this source code is governed by a BSD-style license that can be
 | 
|  // found in the LICENSE file.
 | 
|  -->
 | 
| -<import src="sky-button.sky" as="SkyButton" />
 | 
| +<import src="sky-button.sky" />
 | 
| +<import src="sky-element.sky" />
 | 
|  
 | 
| -<sky-element
 | 
| -    name="sky-checkbox"
 | 
| -    attributes="checked:boolean"
 | 
| -    on-click="handleClick">
 | 
| +<sky-element attributes="checked:boolean, highlight:boolean">
 | 
|  <template>
 | 
|    <style>
 | 
|      :host {
 | 
| @@ -47,27 +45,47 @@
 | 
|        border-color: #0f9d58;
 | 
|      }
 | 
|    </style>
 | 
| -  <div id="container" class="{{ containerStyle }}">
 | 
| -    <div id="check" class="{{ checkStyle }}" />
 | 
| +  <div id="container">
 | 
| +    <div id="check" />
 | 
|    </div>
 | 
|  </template>
 | 
|  <script>
 | 
| -module.exports = class extends SkyButton {
 | 
| -  created() {
 | 
| -    super.created();
 | 
| +import "dart:sky";
 | 
|  
 | 
| -    this.containerStyle = '';
 | 
| -    this.checkStyle = '';
 | 
| +@Tagname('sky-checkbox')
 | 
| +class SkyCheckbox extends SkyButton {
 | 
| +  Element _container;
 | 
| +  Element _check;
 | 
| +
 | 
| +  SkyCheckbox() {
 | 
| +    addEventListener('click', _handleClick);
 | 
| +  }
 | 
| +
 | 
| +  static String _checkClassForValue(bool value) => value ? 'checked' : '';
 | 
| +  static String _containerClassForValue(bool value) => value ? 'highlight' : '';
 | 
| +
 | 
| +  void shadowRootReady() {
 | 
| +    _container = shadowRoot.getElementById('container');
 | 
| +    _container.setAttribute('class', _containerClassForValue(highlight));
 | 
| +    _check = shadowRoot.getElementById('check');
 | 
| +    _check.setAttribute('class', _checkClassForValue(checked));
 | 
|    }
 | 
| -  checkedChanged(oldValue, newValue) {
 | 
| -    this.checkStyle = newValue ? 'checked' : '';
 | 
| +
 | 
| +  void checkedChanged(bool oldValue, bool newValue) {
 | 
| +    if (_check != null)
 | 
| +      _check.setAttribute('class', _checkClassForValue(newValue));
 | 
|    }
 | 
| -  highlightChanged(oldValue, newValue) {
 | 
| -    this.containerStyle = newValue ? 'highlight' : '';
 | 
| +
 | 
| +  void highlightChanged(bool oldValue, bool newValue) {
 | 
| +    if (_container != null)
 | 
| +      _container.setAttribute('class', _containerClassForValue(newValue));
 | 
|    }
 | 
| -  handleClick() {
 | 
| -    this.checked = !this.checked;
 | 
| +
 | 
| +  void _handleClick(_) {
 | 
| +    checked = !checked;
 | 
|    }
 | 
| -}.register();
 | 
| +}
 | 
| +
 | 
| +_init(script) => register(script, SkyCheckbox);
 | 
|  </script>
 | 
|  </sky-element>
 | 
| 
 |