button.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. Ext.require('Ext.button.*');
  2. Ext.onReady(function() {
  3. var genericConfig = [{
  4. _name: 'Text Only'
  5. },{
  6. _name : 'Disabled',
  7. disabled: true
  8. },{
  9. _name : 'Icon Only',
  10. text : null,
  11. iconCls: 'add'
  12. },{
  13. _name : 'Icon and Text (left)',
  14. iconCls: 'add',
  15. iconAlign: 'left'
  16. },{
  17. _name : 'Icon and Text (top)',
  18. iconCls: 'add',
  19. iconAlign: 'top'
  20. },{
  21. _name : 'Icon and Text (right)',
  22. iconCls: 'add',
  23. iconAlign: 'right'
  24. },{
  25. _name : 'Icon and Text (bottom)',
  26. iconCls: 'add',
  27. iconAlign: 'bottom'
  28. }],
  29. menu = {
  30. items: [{
  31. text:'Menu Item 1'
  32. },{
  33. text:'Menu Item 2'
  34. },{
  35. text:'Menu Item 3'
  36. }]
  37. };
  38. function renderButtons(title, configs, defaultConfig) {
  39. Ext.getBody().createChild({
  40. tag : 'h2',
  41. html: title
  42. });
  43. Ext.each(configs, function(config) {
  44. var generateButtons = function(config) {
  45. //Ext.each(['gray', 'darkgray', 'blue', 'darkblue', 'red', 'green'], function(color) {
  46. Ext.each(['default'], function(color) {
  47. Ext.widget(defaultConfig.defaultType || 'button', Ext.apply({
  48. text : 'Small',
  49. scale: 'small',
  50. color: color
  51. }, config, defaultConfig));
  52. Ext.widget(defaultConfig.defaultType || 'button', Ext.apply({
  53. text : 'Medium',
  54. scale: 'medium',
  55. color: color
  56. }, config, defaultConfig));
  57. Ext.widget(defaultConfig.defaultType || 'button', Ext.apply({
  58. text : 'Large',
  59. scale: 'large',
  60. color: color
  61. }, config, defaultConfig));
  62. }, this);
  63. };
  64. Ext.getBody().createChild({
  65. tag : 'h3',
  66. html: config._name
  67. });
  68. var el = Ext.getBody().createChild({});
  69. if (config.children) {
  70. Ext.each(config.children, function(child) {
  71. el = el.createChild({
  72. children: [
  73. {
  74. tag : 'h4',
  75. html: child._name
  76. }
  77. ]
  78. });
  79. }, this);
  80. } else {
  81. generateButtons(Ext.apply(config, {
  82. renderTo: el
  83. }));
  84. }
  85. }, this);
  86. }
  87. renderButtons('Normal Buttons', genericConfig, {
  88. cls: 'floater'
  89. });
  90. renderButtons('Toggle Buttons', genericConfig, {
  91. cls: 'floater',
  92. enableToggle: true
  93. });
  94. renderButtons('Menu Buttons', genericConfig, {
  95. cls: 'floater',
  96. menu : menu
  97. });
  98. renderButtons('Split Buttons', genericConfig, {
  99. cls: 'floater',
  100. defaultType: 'splitbutton',
  101. menu : menu
  102. });
  103. renderButtons('Menu Buttons (Arrow on bottom)', genericConfig, {
  104. cls: 'floater',
  105. menu : menu,
  106. arrowAlign: 'bottom'
  107. });
  108. renderButtons('Split Buttons (Arrow on bottom)', genericConfig, {
  109. cls: 'floater',
  110. defaultType: 'splitbutton',
  111. menu : menu,
  112. arrowAlign: 'bottom'
  113. });
  114. renderButtons('Text align: left', genericConfig, {
  115. cls: 'floater',
  116. textAlign: 'left',
  117. width: 200
  118. });
  119. renderButtons('Text align: right', genericConfig, {
  120. cls: 'floater',
  121. textAlign: 'right',
  122. width: 200
  123. });
  124. renderButtons('Link Buttons', genericConfig, {
  125. cls: 'floater',
  126. href: 'http://www.sencha.com/'
  127. });
  128. });