| <link rel="import" href="../../../../../third-party/polymer/polymer.html"> |
| <link rel="import" href="../../../../../third-party/paper-button/paper-button.html"> |
| <polymer-element name="p2b-grid-column-renderer" extends="th" attributes="data gridState" expects-grid-state> |
| <link rel="stylesheet" href="renderer.css"> |
| <paper-button label="{{ formattedLabel }}" disabled?="{{!data.sortable}}" on-tap="{{ updateGridState }}"></paper-button> |
| Polymer('p2b-grid-column-renderer', { |
| 'data.flex' : 'updateWidth', |
| 'data.totalFlex' : 'updateWidth' |
| updateWidth: function() { |
| // calculate the width value based on flex and total flex of the whole grid. |
| this.style.width = (this.data.flex / this.data.totalFlex) * 100 + '%'; |
| updateGridState:function() { |
| if( !this.data.sortable ) { |
| this.gridState.sort.ascending = !this.gridState.sort.ascending; |
| this.gridState.sort.key = this.data.key; |
| if (!this.data.sortable || this.gridState.sort.key != this.data.key) { |
| if (this.gridState.sort.ascending) { |
| return this.data.label + ' \u21A5'; // up wedge unicode character |
| return this.data.label + ' \u21A7'; // down wedge unicode character |