/*
 * Usage:
 */
EF.Form = Ember.View.extend({
  tagName: 'form',
  attributeBindings: ['action'],
  fieldViews: Ember.A(),
  buttons: ['submit'],
  content: null,
  isForm: true,

  data: Ember.computed(function(){
    var data = {};
    this.get('fieldViews').forEach(function(field){
      var fieldData = field.get('data');
      for(var key in fieldData){
        data[key] = fieldData[key];
      }
    });
    return data;
  }).property('fieldViews.@each.value'),

  submit: function(){
    this.save(this.get('data'));
    return false;
  },

  save: function(data){ }
});

@@ -1,184 +1,888 @@
 /*
+*
 %0A 
-* Usage:%0A */%0AEF.Form = Ember.View.extend(%7B%0A  tagName: 'form',%0A  attributeBindings: %5B'action'%5D,%0A  fieldViews: Ember.A(),%0A  buttons: %5B'submit'%5D,%0A  content: null,%0A  isForm: true,%0A
+ @class%0A%0A  EF.Form is a view that contains several fields and can respond to its events,%0A  providing the field's normalized data. %0A  %0A  It will automatically bind to the values of an object, if provided.%0A%0A    myForm = EF.Form.create(%7B%0A      objectBinding: 'App.someObject',%0A      template: Ember.Handlebars.compile(%0A        '%7B%7Bfield title %7D%7D' +%0A        '%7B%7Bfield body as=%22textarea%22%7D%7D' +%0A        '%7B%7Bform buttons%7D%7D'%0A      ),%0A      save: function(data)%7B this.get('object').setProperties(data); %7D%0A    %7D);%0A%0A  @extends Ember.View%0A*/%0AEF.Form = Ember.View.extend(%7B%0A  tagName: 'form',%0A  attributeBindings: %5B'action'%5D,%0A  fieldViews: Ember.A(),%0A  buttons: %5B'submit'%5D,%0A  content: null,%0A  isForm: true,%0A%0A  /**%0A    It returns this form fields data in an object.%0A%0A      myForm.data();%0A%0A    Would return:%0A%0A      %7B%0A        title: 'Some post title',%0A        content: 'The post content'%0A      %7D%0A  */
 %0A  d
@@ -1248,16 +1248,346 @@
 ;%0A  %7D,%0A%0A
+  /**%0A    This event will be fired when the form is sent, and will receive the form%0A    data as argument. Override it to perform some operation like setting the%0A    properties of an object.%0A%0A    myForm = EF.Form.create(%7B%0A      %5B...%5D%0A      save: function(data)%7B%0A        this.get('object').setProperties(data);%0A      %7D%0A    %7D);%0A  */%0A
   save: 

Add docs to form