commandbuttonset.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * @fileOverview
  3. *
  4. * commandbuttonset.js 生成与指定命令绑定的按钮
  5. *
  6. * @author: techird
  7. * @copyright: Baidu FEX, 2014
  8. */
  9. KityMinder.registerUI('widget/commandbuttonset', function(minder) {
  10. function mapValueItem(command, valueList) {
  11. return valueList.map(function(value) {
  12. var text = minder.getLang([command, value].join('.')) || value;
  13. return {
  14. label: text,
  15. text: text,
  16. value: value,
  17. className: [command, value].join(' ')
  18. };
  19. });
  20. }
  21. function generate(command, valueList) {
  22. var $buttonset = new FUI.Buttonset({
  23. id: 'template-set',
  24. buttons: typeof(valueList[0]) == 'object' ? valueList : mapValueItem(command, valueList),
  25. className: ['command-widget', 'command-buttonset', command].join(' ')
  26. });
  27. $buttonset.bindExecution('change', function() {
  28. minder.execCommand(command, $buttonset.getValue());
  29. });
  30. $buttonset.bindCommandState(minder, command, function(value) {
  31. this.selectByValue(value);
  32. });
  33. return $buttonset;
  34. }
  35. return {
  36. generate: generate
  37. };
  38. });