title: ExtJs dynamically building a formpanel from a datastore record
body: <p>I am trying to dynamically populate a ExtJs FormPanel from a datastore record.
  When the user clicks on a row in the GridPanel, the buildForm method is called and the clicked record is sent passed in as the first arg.</p>
  
  <p>The below code (when debugging) appears to be working, but the <strong>doLayout</strong> method has no effect.</p>
  
  <p>Can anyone point me in the right direction?</p>
  
  <pre><code>mymodule = Ext.extend(Ext.FormPanel, {
      forceLayout: true,
      initComponent: function () {
          Ext.applyIf(this, {
              id: Ext.id(),
              labelWidth: 75,
              defaultType: 'textfield',
              items: [{
                  layout: 'form',
                  items: [{
                      fieldLabel: 'test',
                      xtype: 'textfield'
                  }, {
                      fieldLabel: 'test',
                      xtype: 'textfield'
                  }]
              }]
          });
          mymodule.superclass.initComponent.call(this);
      },
      buildForm: function (record, c) {
          var form = this.getForm();
  
          var formItems = new Ext.util.MixedCollection();
  
          Ext.each(record.fields.items, function (item) {
              formItems.add(new Ext.form.TextField({
                  labelStyle: 'width:100px',
                  fieldLabel: item.name,
                  name: item.dataIndex,
                  id: 'field-' + item.name
              }));
          }, this);
  
          form.items = formItems;
  
          this.doLayout(false, true);
  
          form.loadRecord(record);
      }
  });
  </code></pre>