Results 1 to 6 of 6

Thread: Problem overriding functions of Ext.ux.form.ItemSelector in derived class

  1. #1
    Sencha User
    Join Date
    Dec 2011
    Posts
    64
    Vote Rating
    0
      0  

    Default Answered: Problem overriding functions of Ext.ux.form.ItemSelector in derived class

    Hi ,
    i am working on Ext.ux.form.ItemSelector, using which a window appears and we have two panels, 'Available' and 'Selected' , any item in Available panel double clicked moves to Selected panel, but i want the item double clicked to move to Selected Panel as well as retained in original list of Available items for example if 'Available' Panel had two items 'a' and 'b' , if i double clicked 'a' , 'a' will be available in 'Selected' Panel but also retained in 'Available' panel, so i tried extending base class and override these methods as shown i code:

    Code:
    Ext.define('abcd.cm.monitoring.view.Common.MonitorSelector', {
      extend: 'Ext.ux.form.ItemSelector',
        alias: 'widget.monitorselector',
        requires: [
            'Ext.ux.form.ItemSelector'
        ],
    
    
    
    
        initComponent: function() {
            var me = this;
            me.callParent();
        }
        ,
    
    
         onAddBtnClick : function() {
            var me = this,
                fromList = me.fromField.boundList,
                selected = this.getSelections(fromList);
    
    
            fromList.getStore().remove(selected);
            this.toField.boundList.getStore().add(selected);
        },
        onRemoveBtnClick : function() {
            var me = this,
                toList = me.toField.boundList,
                selected = this.getSelections(toList);
    
    
            toList.getStore().remove(selected);
         //   this.fromField.boundList.getStore().add(selected);
        },
         onItemDblClick : function(view) {
            var me = this;
            if (view == me.toField.boundList){
                me.onRemoveBtnClick();
            }
            else if (view == me.fromField.boundList) {
                me.onAddBtnClick();
            }
        }
    });

    I am not able to get desired result.can anybody help me .
    thanks in advance

  2. Why not just override the moveRec method? It's where onItemDblClick, onAddBtnClick and all them go to.

  3. #2
    Sencha - Sr Software Engineer mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    39,553
    Answers
    3931
    Vote Rating
    1272
      0  

    Default

    Why not just override the moveRec method? It's where onItemDblClick, onAddBtnClick and all them go to.
    Mitchell Simoens @LikelyMitch
    Sencha Inc, Senior Software Engineer
    ________________
    Learn BBCode and use it! Checkout the CODE tag!

    Check out my GitHub, lots of nice things for Ext JS and Sencha Touch
    https://github.com/mitchellsimoens

  4. #3
    Sencha User
    Join Date
    Dec 2011
    Posts
    64
    Vote Rating
    0
      0  

    Default

    Thanks Michelle,


    but there is no function called 'moveRec' in base class or derived class , which function are u talking about ?
    and how do i override a method in derived class ?

  5. #4
    Sencha - Sr Software Engineer mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    39,553
    Answers
    3931
    Vote Rating
    1272
      0  

    Default

    My name isn't "Michelle".

    I'm guessing you are using an older version? The latest public release (4.1.1) has this moveRec method in it.
    Mitchell Simoens @LikelyMitch
    Sencha Inc, Senior Software Engineer
    ________________
    Learn BBCode and use it! Checkout the CODE tag!

    Check out my GitHub, lots of nice things for Ext JS and Sencha Touch
    https://github.com/mitchellsimoens

  6. #5
    Sencha User
    Join Date
    Dec 2011
    Posts
    64
    Vote Rating
    0
      0  

    Default

    Thanks Mitchell Simoens.

    I am using 4.1.1 only this is code i tried overriding 'moveRec' function you told but couldn't get desired results.

    Code:
    Ext.define('abcd.cm.monitoring.view.Common.MonitorSelector', {
        extend: 'Ext.ux.form.ItemSelector',
        alias: 'widget.monitorselector',
        requires: [
            'Ext.ux.form.ItemSelector'
        ],
    
    
        initComponent: function() {
            var me = this;
            me.callParent();
        }
        ,
        moveRec: function(add, recs) {
            var me = this,
                fromField = me.fromField,
                toField   = me.toField,
                fromStore = add ? fromField.store : toField.store,
                toStore   = add ? toField.store   : fromField.store;
    
    
            fromStore.suspendEvents();
            toStore.suspendEvents();
           // fromStore.remove(recs);
            toStore.add(recs);
            fromStore.resumeEvents();
            toStore.resumeEvents();
    
    
            fromField.boundList.refresh();
            toField.boundList.refresh();
    
    
            me.syncValue();
        }
    });



  7. #6
    Sencha User
    Join Date
    Dec 2011
    Posts
    64
    Vote Rating
    0
      0  

    Default

    Thanks Mitchell Simoens..
    i tried overrding method 'moveRec' and it worked but issue i am facing now is :

    In 'Available ' list if i have items a b c and d and i double click on 'a' , a copy of 'a' is sent to 'Selected ' list and 'a' is retained in 'Available' list as well as i wanted , but when i double click on 'a' of 'Available' list again the items in the 'Selected' list must be 'a' and 'a' that is 2 copies of 'a' in Selected list but that's not happening .It(Selected list) just conatins only one copy of 'a' now but i need 2 copies of 'a' here.
    Here is code:

    Code:
    Ext.define('abcd.cm.monitoring.view.Common.MonitorSelector', {
        extend: 'Ext.ux.form.ItemSelector',
        alias: 'widget.monitorselector',
        requires: [
            'Ext.ux.form.ItemSelector'
        ],
    
    
        initComponent: function() {
            var me = this;
            me.callParent();
        } ,
        onAddBtnClick : function() {
           var me = this,
               selected = me.getSelections(me.fromField.boundList);
    
    
          me.moveRec(true, selected);
           me.toField.boundList.getSelectionModel().select(selected);
       }
    
    
        , moveRec: function(add, recs) {
            var me = this,
                fromField = me.fromField,
                toField   = me.toField,
                fromStore = add ? fromField.store : toField.store,
                toStore   = add ? toField.store   : fromField.store;
    
    
            fromStore.suspendEvents();
            toStore.suspendEvents();
           // fromStore.remove(recs);
            toStore.add(recs);
            fromStore.resumeEvents();
            toStore.resumeEvents();
    
    
            fromField.boundList.refresh();
            toField.boundList.refresh();
    
    
            me.syncValue();
        }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •