Requires

Provides

Choice.js

Trait that completes List. Allows one item to be chosen and one selected (think navigating to a menu item to select)

License:
Public domain (http://unlicense.org).
  1. 21
  2. 22
  3. 23
  4. 24
  5. 25
  6. 26
  7. 27
  8. 28
  9. 29
  10. 30
  11. 31
  12. 32
  13. 33
  14. 34
  15. 35
  16. 36
  17. 37
  18. 38
  19. 39
  20. 40
  21. 41
  22. 42
  23. 43
  24. 44
  25. 45
  26. 46
  27. 47
  28. 48
  29. 49
  30. 50
  31. 51
  32. 52
  33. 53
  34. 54
  35. 55
  36. 56
  37. 57
  38. 58
  39. 59
  40. 60
LSD.Trait.Choice = new Class({ selectItem: function(item, temp) { if (temp !== true) return this.parent.apply(this, arguments) if (!(item = this.getItem(item)) && this.options.list.force) return false; var chosen = this.chosenItem; this.setSelectedItem(item, 'chosen'); this.fireEvent('choose', [item, this.getItemIndex()]); if (item.choose() && chosen) chosen.forget(); return item; }, forgetChosenItem: function(item) { item = this.getItem(item) || this.selectedItem; if (item) item.forget(); this.unsetSelectedItem(item, 'chosen'); }, selectChosenItem: function() { return this.selectItem(this.chosenItem) }, getChosenItems: function() { return this.chosenItem || (this.chosenItems ? this.chosenItems.getLast() : null); }, getChosenItems: function(type) { return this.chosenItems || (this.chosenItem && [this.chosenItem]); }, getSelectedOptionPosition: function() { var height = 0; if (!this.selectedItem) return height; for (var i = 0, j = this.widgets.length; i < j; i++) { if (this.widgets[i] == this.selectedItem) break; height += this.widgets[i].getLayoutHeight(); } return height } });