partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

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 });