| Index: sky/framework/sky-radio.sky
 | 
| diff --git a/sky/framework/sky-radio.sky b/sky/framework/sky-radio.sky
 | 
| deleted file mode 100644
 | 
| index 7aa84b7d3a29405033fccd54548e13fbf83b44be..0000000000000000000000000000000000000000
 | 
| --- a/sky/framework/sky-radio.sky
 | 
| +++ /dev/null
 | 
| @@ -1,112 +0,0 @@
 | 
| -<!--
 | 
| -// 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-element.sky" />
 | 
| -<import src="sky-icon.sky" />
 | 
| -
 | 
| -<sky-element attributes="selected:boolean, group:string">
 | 
| -<template>
 | 
| -  <style>
 | 
| -    :host {
 | 
| -      display: inline-block;
 | 
| -      -webkit-user-select: none;
 | 
| -      margin: 8px 16px;
 | 
| -    }
 | 
| -  </style>
 | 
| -  <sky-icon size="18" />
 | 
| -</template>
 | 
| -<script>
 | 
| -import "dart:sky";
 | 
| -
 | 
| -final Map<Node, _RadioGroupController> _controllerMap = new Map();
 | 
| -
 | 
| -class _RadioGroupController {
 | 
| -  static _RadioGroupController forRadio(radio) {
 | 
| -    Node owner = radio.owner;
 | 
| -    return _controllerMap.putIfAbsent(owner, () =>
 | 
| -        new _RadioGroupController(owner));
 | 
| -  }
 | 
| -
 | 
| -  final Node _scope;
 | 
| -  final Set<SkyRadio> _radios = new Set<SkyRadio>();
 | 
| -
 | 
| -  _RadioGroupController(this._scope);
 | 
| -
 | 
| -  void addRadio(SkyRadio radio) {
 | 
| -    _radios.add(radio);
 | 
| -    // If this new radio is default-selected, take selection from the group.
 | 
| -    if (radio.selected)
 | 
| -      takeSelectionFromGroup(radio);
 | 
| -  }
 | 
| -
 | 
| -  void removeRadio(SkyRadio radio) {
 | 
| -    _radios.remove(radio);
 | 
| -    if (_radios.isEmpty)
 | 
| -      _controllerMap.remove(_scope);
 | 
| -  }
 | 
| -
 | 
| -  void takeSelectionFromGroup(SkyRadio selectedRadio) {
 | 
| -    String group = selectedRadio.group;
 | 
| -    if (group == null)
 | 
| -      return;
 | 
| -    _radios.forEach((SkyRadio radio) {
 | 
| -      if (selectedRadio == radio)
 | 
| -        return;
 | 
| -      if (radio.group != group)
 | 
| -        return;
 | 
| -      radio.selected = false;
 | 
| -    });
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -const String _kOnIcon = 'toggle/radio_button_on_black';
 | 
| -const String _kOffIcon = 'toggle/radio_button_off_black';
 | 
| -
 | 
| -@Tagname('sky-radio')
 | 
| -class SkyRadio extends SkyElement {
 | 
| -  _RadioGroupController _controller;
 | 
| -  SkyIcon _icon;
 | 
| -
 | 
| -  SkyRadio() {
 | 
| -    addEventListener('click', _handleClick);
 | 
| -  }
 | 
| -
 | 
| -  void shadowRootReady() {
 | 
| -    _icon = shadowRoot.querySelector('sky-icon');
 | 
| -    _icon.type = selected ? _kOnIcon : _kOffIcon;
 | 
| -  }
 | 
| -
 | 
| -  void attached() {
 | 
| -    super.attached();
 | 
| -    _controller = _RadioGroupController.forRadio(this);
 | 
| -    _controller.addRadio(this);
 | 
| -  }
 | 
| -
 | 
| -  void detached() {
 | 
| -    super.detached();
 | 
| -    _controller.removeRadio(this);
 | 
| -    _controller = null;
 | 
| -  }
 | 
| -
 | 
| -  void selectedChanged(bool oldValue, bool newValue) {
 | 
| -    if (_icon != null)
 | 
| -      _icon.type = newValue ? _kOnIcon : _kOffIcon;
 | 
| -    if (newValue && _controller != null)
 | 
| -      _controller.takeSelectionFromGroup(this);
 | 
| -  }
 | 
| -
 | 
| -  void groupChanged(String oldValue, String newValue) {
 | 
| -    if (selected && _controller != null)
 | 
| -      _controller.takeSelectionFromGroup(this);
 | 
| -  }
 | 
| -
 | 
| -  _handleClick(_) {
 | 
| -    this.selected = true;
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -_init(script) => register(script, SkyRadio);
 | 
| -</script>
 | 
| -</sky-element>
 | 
| 
 |