PartParameterGrid.js (5811B)
1 Ext.define('PartKeepr.PartParameterGrid', { 2 extend: 'PartKeepr.BaseGrid', 3 alias: 'widget.PartParameterGrid', 4 border: false, 5 selModel: { 6 selType: 'rowmodel', 7 mode: 'MULTI' 8 }, 9 initComponent: function () 10 { 11 this.store = Ext.create("Ext.data.Store", { 12 model: 'PartKeepr.PartBundle.Entity.PartParameter', 13 proxy: { 14 type: 'memory', 15 reader: { 16 type: 'json' 17 } 18 } 19 }); 20 21 this.deleteButton = Ext.create("Ext.button.Button", { 22 text: i18n('Delete'), 23 disabled: true, 24 itemId: 'delete', 25 scope: this, 26 iconCls: 'fugue-icon table--minus', 27 handler: this.onDeleteClick 28 }); 29 30 this.dockedItems = [ 31 { 32 xtype: 'toolbar', 33 items: [ 34 { 35 text: i18n('Add'), 36 scope: this, 37 iconCls: 'fugue-icon table--plus', 38 handler: this.onAddClick 39 }, this.deleteButton 40 ] 41 } 42 ]; 43 44 this.columns = [ 45 { 46 header: i18n("Parameter"), 47 dataIndex: 'name', 48 flex: 0.2, 49 }, 50 { 51 header: i18n("Min Value"), 52 dataIndex: 'minValue', 53 flex: 0.2, 54 renderer: function (v, m, rec) 55 { 56 var siPrefix = "", unit = ""; 57 58 if (v === null) { 59 return ""; 60 } 61 if (rec.get("valueType") === "string") { 62 return ""; 63 } 64 65 if (rec.getUnit() instanceof PartKeepr.UnitBundle.Entity.Unit) { 66 unit = rec.getUnit().get("symbol"); 67 } 68 69 if (rec.getMinSiPrefix() instanceof PartKeepr.SiPrefixBundle.Entity.SiPrefix) { 70 siPrefix = rec.getMinSiPrefix().get("symbol"); 71 } 72 73 return v + siPrefix + unit; 74 } 75 }, { 76 header: i18n("Nominal Value"), 77 dataIndex: 'value', 78 flex: 0.2, 79 renderer: function (v, m, rec) 80 { 81 var siPrefix = "", unit = ""; 82 83 if (rec.get("valueType") === "string") { 84 return rec.get("stringValue"); 85 } 86 if (v === null) { 87 return ""; 88 } 89 90 if (rec.getUnit() instanceof PartKeepr.UnitBundle.Entity.Unit) { 91 unit = rec.getUnit().get("symbol"); 92 } 93 94 if (rec.getSiPrefix() instanceof PartKeepr.SiPrefixBundle.Entity.SiPrefix) { 95 siPrefix = rec.getSiPrefix().get("symbol"); 96 } 97 98 return v + siPrefix + unit; 99 } 100 }, { 101 header: i18n("Max Value"), 102 dataIndex: 'maxValue', 103 flex: 0.2, 104 renderer: function (v, m, rec) 105 { 106 var siPrefix = "", unit = ""; 107 108 if (v === null) { 109 return ""; 110 } 111 if (rec.get("valueType") === "string") { 112 return ""; 113 } 114 115 if (rec.getUnit() instanceof PartKeepr.UnitBundle.Entity.Unit) { 116 unit = rec.getUnit().get("symbol"); 117 } 118 119 if (rec.getMaxSiPrefix() instanceof PartKeepr.SiPrefixBundle.Entity.SiPrefix) { 120 siPrefix = rec.getMaxSiPrefix().get("symbol"); 121 } 122 123 return v + siPrefix + unit; 124 } 125 }, 126 { 127 header: i18n("Unit"), 128 flex: 0.2, 129 renderer: function (v, m, rec) 130 { 131 if (rec.getUnit() instanceof PartKeepr.UnitBundle.Entity.Unit) { 132 return rec.getUnit().get("name"); 133 } else { 134 return ""; 135 } 136 } 137 }, 138 { 139 header: i18n("Description"), 140 dataIndex: 'description', 141 flex: 0.3, 142 } 143 ]; 144 145 this.callParent(); 146 147 this.getSelectionModel().on('selectionchange', this.onSelectChange, this); 148 this.on("itemdblclick", this.onItemDblClick, this); 149 }, 150 onItemDblClick: function (grid, record) 151 { 152 this.editRecord(record); 153 }, 154 onAddClick: function () 155 { 156 var rec = Ext.create("PartKeepr.PartBundle.Entity.PartParameter", { 157 valueType: "numeric" 158 }); 159 160 this.store.insert(0, rec); 161 162 this.editRecord(rec); 163 }, 164 editRecord: function (rec) 165 { 166 var k = Ext.create("PartKeepr.PartParameterValueEditor"); 167 168 var j = Ext.create("Ext.window.Window", { 169 items: k, 170 modal: true, 171 title: i18n("Edit Parameter"), 172 layout: 'fit', 173 width: 600, 174 height: 300 175 }); 176 177 k.loadRecord(rec); 178 k.on("save", function () 179 { 180 j.destroy(); 181 }); 182 183 j.show(); 184 }, 185 onDeleteClick: function () 186 { 187 this.store.remove(this.getView().getSelectionModel().getSelection()); 188 }, 189 onSelectChange: function (selModel, selections) 190 { 191 this.deleteButton.setDisabled(selections.length === 0); 192 } 193 });