001    package org.springframework.richclient.samples.simple.ui.binding;
002    
003    import org.springframework.binding.form.FormModel;
004    import org.springframework.richclient.form.AbstractForm;
005    import org.springframework.richclient.form.binding.swing.AbstractGlazedListsBinding;
006    import org.springframework.richclient.samples.simple.domain.TodoItem;
007    import org.springframework.richclient.samples.simple.ui.TodoForm;
008    import org.springframework.richclient.widget.table.PropertyColumnTableDescription;
009    import org.springframework.richclient.widget.table.TableDescription;
010    
011    public class TodoItemListBinding extends AbstractGlazedListsBinding
012    {
013        public TodoItemListBinding(FormModel formModel, String formPropertyPath)
014        {
015            super(formModel, formPropertyPath);
016            setDialogId("todoItemListBindingDialog");
017            setAddSupported(true);
018            setEditSupported(true);
019            setRemoveSupported(true);
020            setShowDetailSupported(true);
021        }
022    
023        protected TableDescription getTableDescription()
024        {
025            PropertyColumnTableDescription desc = new PropertyColumnTableDescription("todoListBinding", TodoItem.class);
026            desc.addPropertyColumn("name");
027            desc.addPropertyColumn("description");
028            return desc;
029        }
030    
031        // detail form behavior
032    
033        @Override
034        protected Object getNewFormObject()
035        {
036            return new TodoItem();
037        }
038    
039        @Override
040        protected AbstractForm createAddEditForm()
041        {
042            return new TodoForm();
043        }
044        
045        @Override
046        protected AbstractForm createDetailForm()
047        {
048            AbstractForm f = new TodoForm();
049            f.getFormModel().setReadOnly(true);
050            return f;
051        }
052    }