partkeepr

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

FieldSelectorWindow.js (2169B)


      1 Ext.define("PartKeepr.Components.Widgets.FieldSelectorWindow", {
      2     extend: 'Ext.window.Window',
      3 
      4     layout: 'fit',
      5     width: 600,
      6     height: 600,
      7     title: i18n("Select Field"),
      8 
      9      /* Constrain the window to fit the viewport */
     10     constrainHeader: true,
     11 
     12     config: {
     13         sourceModel: null
     14     },
     15 
     16     initComponent: function ()
     17     {
     18         var modelFieldSelector = Ext.create({
     19             xtype: 'modelFieldSelector',
     20             border: false,
     21             sourceModel: this.sourceModel,
     22             useCheckBoxes: false,
     23             flex: 1,
     24             listeners: {
     25                 selectionchange: function (selectionModel, selected)
     26                 {
     27                     var addFieldButton = this.down("#addSelectedField");
     28 
     29                     if (selected.length == 1 && selected[0].data.data.type !== "onetomany") {
     30                         addFieldButton.enable();
     31                     } else {
     32                         addFieldButton.disable();
     33                     }
     34                 },
     35                 scope: this
     36             }
     37         });
     38 
     39         modelFieldSelector.on("itemdblclick", function (view, record)
     40         {
     41             if (record.data.data && record.data.data.type !== "onetomany") {
     42 
     43                 this.fireEvent("fieldSelect", record);
     44                 this.close();
     45             }
     46         }, this);
     47 
     48         this.items = modelFieldSelector;
     49 
     50         this.bbar = [
     51                 {
     52                     xtype: 'button',
     53                     itemId: 'addSelectedField',
     54                     disabled: true,
     55                     text: i18n("Add selected Field"),
     56                     iconCls: 'fugue-icon flask--plus',
     57                     handler: function ()
     58                     {
     59                         var selection = modelFieldSelector.getSelection();
     60 
     61                         if (selection.length == 1 && selection[0].data.data.type !== "onetomany") {
     62                             this.fireEvent("fieldSelect", selection[0]);
     63                             this.close();
     64                         }
     65                     },
     66                     scope: this
     67                 }
     68             ];
     69 
     70         this.callParent(arguments);
     71     }
     72 });