I have a tree panel which displays a list of folders and the items which they contain. The folders can be locked or unlocked. Locked folders have a different icon than unlocked folders. They should also have different tooltip text. Unlocked folders will display the folder description in the tooltip, but locked folders should display who locked the folder (and when). This works perfectly when the folders are initially loaded, but if an already displayed folder is changed from unlocked to locked, the tooltip is not updated. Please note that the icon is updated immediately, and closing and reopening the parent of that folder will cause the new tooltip text to be displayed correctly.

The tooltip comes from a non-persistent qtip field in the tree's data model:

Code:
Ext.define('app.FolderTreeNode', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'folderId', type: 'int', defaultValue: null},
        {name: 'parentFolderId', type: 'int'},
        {name: 'nodeName', type: 'string'},
        {name: 'nodeDescription', type: 'string'},
        {name: 'lockDateTime', type: 'string', defaultValue: null},
        {name: 'lockUserId', type: 'string', defaultValue: null},
        {name: 'leaf', type: 'bool', defaultValue: false, persist: false, 
            convert: isFolderTreeNodeLeaf},
        {name: 'qtip', type: 'string', persist: false, 
            convert: getFolderTreeNodeQtip},
        {name: 'text', type: 'string', persist: false, 
            convert: getFolderTreeNodeText},
        {name: 'icon', type: 'string', persist: false, 
            convert: getFolderTreeNodeIcon}
    ],
    
    /**
     * Assign the nonpersistent fields of this model object from the persistent 
     * fields.
     */
    assignNonpersistentFields: function() {
        this.set('qtip', getFolderTreeNodeQtip(null, {data: this.getData()}));
        this.set('icon', getFolderTreeNodeIcon(null, {data: this.getData()}));
        ...
    }
    
});
Here are the relevant conversion functions used by the data model:

Code:
function getFolderTreeNodeIcon(v, record) {
    if (record.data.lockUserId) {
        return 'resources/folder_locked.png';
    }
    return 'resources/folder_unlocked.png';
}

function getFolderTreeNodeQtip(v, record) {
    if (record.data.lockUserId) {
        return 'Locked by ' + record.data.lockUserId + ' on ' 
                + record.data.lockDateTime;
    }
    return record.data.nodeDescription;
}
When a folder is toggled from unlocked to locked (or vice versa), I set the lockUserId and lockDateTime fields of the folder, then call its assignNonpersistentFields method:

Code:
currentFolder.set('lockUserId', result[0]);
currentFolder.set('lockDateTime', result[1]);
currentFolder.assignNonpersistentFields();
As I mentioned above, the folder icon is updated immediately, but the folder's tooltip is only updated when that folder's parent is closed and reopened. What do I need to do to make the tooltip text update immediately?