UNPKG

strong-arc

Version:

A visual suite for the StrongLoop API Platform

69 lines (60 loc) 1.86 kB
// Copyright 2014 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. /** * @constructor * @extends {WebInspector.Object} */ WebInspector.DropDownMenu = function() { this.element = document.createElementWithClass("select", "drop-down-menu"); this.element.addEventListener("mousedown", this._onBeforeMouseDown.bind(this), true); this.element.addEventListener("mousedown", consumeEvent, false); this.element.addEventListener("change", this._onChange.bind(this), false); } WebInspector.DropDownMenu.Events = { BeforeShow: "BeforeShow", ItemSelected: "ItemSelected" } WebInspector.DropDownMenu.prototype = { _onBeforeMouseDown: function() { this.dispatchEventToListeners(WebInspector.DropDownMenu.Events.BeforeShow, null); }, _onChange: function() { var options = this.element.options; var selectedOption = options[this.element.selectedIndex]; this.dispatchEventToListeners(WebInspector.DropDownMenu.Events.ItemSelected, selectedOption.id); }, /** * @param {string} id * @param {string} title */ addItem: function(id, title) { var option = new Option(title); option.id = id; this.element.appendChild(option); }, /** * @param {?string} id */ selectItem: function(id) { var children = this.element.children; for (var i = 0; i < children.length; ++i) { var child = children[i]; if (child.id === id) { this.element.selectedIndex = i; return; } } this.element.selectedIndex = -1; }, clear: function() { this.element.removeChildren(); }, __proto__: WebInspector.Object.prototype }