Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypeAttributePanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypeAttributePanelView.xml	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypeAttributePanelView.xml	(revision 44085)
@@ -341,7 +341,7 @@
                       </at>
                       <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                      </super>
-                     <at name="id">embedded.1961517027</at>
+                     <at name="id">embedded.442378372</at>
                      <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
                      <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
                      <at name="components">
@@ -818,7 +818,7 @@
                       </at>
                       <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                      </super>
-                     <at name="id">embedded.281442349</at>
+                     <at name="id">embedded.707717678</at>
                      <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
                      <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
                      <at name="components">
@@ -1138,7 +1138,7 @@
                            </at>
                            <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                           </super>
-                          <at name="id">embedded.H69d02188B168b2d22e86SZ7ffc</at>
+                          <at name="id">embedded.1129449780</at>
                           <at name="rowspecs">CENTER:DEFAULT:NONE</at>
                           <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
                           <at name="components">
@@ -1274,7 +1274,7 @@
                                 </at>
                                </object>
                               </at>
-                              <at name="name"></at>
+                              <at name="name"/>
                               <at name="fill">
                                <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
                                 <at name="name">fill</at>
@@ -1285,6 +1285,26 @@
                                 <at name="name">scollBars</at>
                                 <at name="verticalpolicy">21</at>
                                 <at name="horizontalpolicy">31</at>
+                                <at name="border">
+                                 <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                                  <super classname="com.jeta.forms.store.properties.BorderProperty">
+                                   <at name="name">border</at>
+                                  </super>
+                                  <at name="borders">
+                                   <object classname="java.util.LinkedList">
+                                    <item >
+                                     <at name="value">
+                                      <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                                       <super classname="com.jeta.forms.store.properties.BorderProperty">
+                                        <at name="name">border</at>
+                                       </super>
+                                      </object>
+                                     </at>
+                                    </item>
+                                   </object>
+                                  </at>
+                                 </object>
+                                </at>
                                </object>
                               </at>
                              </object>
@@ -1336,7 +1356,7 @@
                            </at>
                           </object>
                          </at>
-                         <at name="name"></at>
+                         <at name="name"/>
                          <at name="fill">
                           <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
                            <at name="name">fill</at>
@@ -1449,8 +1469,8 @@
                       </at>
                       <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                      </super>
-                     <at name="id">embedded.1760028212</at>
-                     <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
+                     <at name="id">embedded.667447837</at>
+                     <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
                      <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
                      <at name="components">
                       <object classname="java.util.LinkedList">
@@ -1653,7 +1673,7 @@
                            </at>
                            <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                           </super>
-                          <at name="id">embedded.1189665299</at>
+                          <at name="id">embedded.1031029466</at>
                           <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE</at>
                           <at name="colspecs">FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
                           <at name="components">
@@ -2199,7 +2219,7 @@
             </at>
             <at name="width">997</at>
             <at name="tabCount">3</at>
-            <at name="height">212</at>
+            <at name="height">199</at>
            </object>
           </at>
          </object>
@@ -2280,7 +2300,7 @@
          </at>
          <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
         </super>
-        <at name="id">embedded.1381694878</at>
+        <at name="id">embedded.1927495917</at>
         <at name="rowspecs">CENTER:DEFAULT:NONE</at>
         <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
         <at name="components">
@@ -2416,7 +2436,7 @@
               </at>
              </object>
             </at>
-            <at name="name"></at>
+            <at name="name"/>
             <at name="fill">
              <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
               <at name="name">fill</at>
@@ -2498,7 +2518,7 @@
          </at>
          <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
         </super>
-        <at name="id">embedded.N69d02188A168b2d22e86CE7ffa</at>
+        <at name="id">embedded.1977188865</at>
         <at name="rowspecs">CENTER:DEFAULT:NONE</at>
         <at name="colspecs">FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE</at>
         <at name="components">
@@ -2862,7 +2882,7 @@
               </at>
              </object>
             </at>
-            <at name="name"></at>
+            <at name="name"/>
             <at name="fill">
              <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
               <at name="name">fill</at>
@@ -2873,6 +2893,26 @@
               <at name="name">scollBars</at>
               <at name="verticalpolicy">21</at>
               <at name="horizontalpolicy">31</at>
+              <at name="border">
+               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+                <at name="borders">
+                 <object classname="java.util.LinkedList">
+                  <item >
+                   <at name="value">
+                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                    </object>
+                   </at>
+                  </item>
+                 </object>
+                </at>
+               </object>
+              </at>
              </object>
             </at>
            </object>
@@ -2924,7 +2964,7 @@
          </at>
         </object>
        </at>
-       <at name="name"></at>
+       <at name="name"/>
        <at name="fill">
         <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
          <at name="name">fill</at>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanel.java	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanel.java	(revision 44085)
@@ -14,6 +14,6 @@
     
     public void put(FeatureType type);
     
-    public void setReadonly(boolean readonly);
+    public void setEditable(boolean editable);
 
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypeAttributePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypeAttributePanel.java	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypeAttributePanel.java	(revision 44085)
@@ -14,6 +14,6 @@
     
     public void put(FeatureAttributeDescriptor descriptor);
     
-    public void setReadonly(boolean readonly);
+    public void setEditable(boolean editable);
 
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultFeatureTypePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultFeatureTypePanel.java	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultFeatureTypePanel.java	(revision 44085)
@@ -1,15 +1,25 @@
 package org.gvsig.fmap.dal.swing.impl.featuretype;
 
 import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Date;
 import java.util.Objects;
 import javax.swing.JComponent;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
 import javax.swing.table.AbstractTableModel;
 import javax.swing.table.TableModel;
+import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
 import org.gvsig.fmap.dal.feature.EditableFeatureType;
 import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypes;
+import org.gvsig.tools.i18n.I18nManager;
 
 /**
  *
@@ -29,7 +39,7 @@
           "Size",
           "Precision",
           "Default value",
-          "Calcualed"
+          "Calculated"
         };
         private final Class[] columnClasses = new Class[] {
           String.class,
@@ -112,48 +122,107 @@
         @Override
         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
         }
-        
+    
+        public void fireUpdateEvent() {
+            this.fireTableChanged(new TableModelEvent(this));
+        }
     }
     
     private DefaultFeatureTypeAttributePanel descriptorPanel;
     private FeatureType featureType;
+    private boolean editable;
+    private FeatureTypeTableModel tableModel;
+    private FeatureStore store;
         
     public DefaultFeatureTypePanel() {
+        this.editable = true;
         this.initComponents();
     }
 
     private void initComponents() {
-        TableModel model = new FeatureTypeTableModel();
-        this.tblFields.setModel(model);
+        this.tableModel = new FeatureTypeTableModel();
+        this.tblFields.setModel(this.tableModel);
         this.tblFields.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
             @Override
             public void valueChanged(ListSelectionEvent e) {
-                doRowSelected();
+                doFormFieldPut();
             }
         });
         this.descriptorPanel = new DefaultFeatureTypeAttributePanel();
         this.pnlField.setLayout(new BorderLayout());
         this.pnlField.add(this.descriptorPanel, BorderLayout.CENTER);
         this.descriptorPanel.setEnabled(false);
+
+        this.btnFormFieldDiscard.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doFormFieldPut();
+            }
+        });
+        this.btnFormFieldAccept.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doFormFieldFetch();
+            }
+        });
+        this.btnNew.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doNewField();
+            }
+        });
+        this.btnDelete.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doDeleteField();
+            }
+        });
+        
+        this.setPreferredSize(new Dimension(700, 500));
     }
        
-    private void doRowSelected() {
+    private void doFormFieldFetch() {
         int row = this.tblFields.getSelectedRow();
         if( row<0 ) {
             return;
         }
         FeatureAttributeDescriptor descriptor = this.featureType.getAttributeDescriptor(row);
+        if( descriptor instanceof EditableFeatureAttributeDescriptor ) {
+            this.descriptorPanel.fetch((EditableFeatureAttributeDescriptor) descriptor);
+            this.tableModel.fireUpdateEvent();
+        } 
+    }
+    
+    private void doFormFieldPut() {
+        int row = this.tblFields.getSelectedRow();
+        if( row<0 ) {
+            return;
+        }
+        FeatureAttributeDescriptor descriptor = this.featureType.getAttributeDescriptor(row);
         this.descriptorPanel.put(descriptor);
         this.descriptorPanel.setEnabled(true);
+        if( descriptor instanceof EditableFeatureAttributeDescriptor ) {
+            this.btnFormFieldAccept.setEnabled(this.editable);
+            this.descriptorPanel.setEditable(this.editable);
+        } else {
+            this.btnFormFieldAccept.setEnabled(false);
+            this.descriptorPanel.setEditable(false);
+        }
     }
     
+    
     @Override
     public JComponent asJComponent() {
         return this;
     }
 
-    public void setReadonly(boolean readonly) {
-        
+    public void setEditable(boolean editable) {
+        this.editable = editable;
+        this.btnFormFieldAccept.setEnabled(editable);
+        this.btnFormFieldDiscard.setEnabled(editable);
+        this.btnNew.setEnabled(editable);
+        this.btnDelete.setEnabled(editable);
+        this.descriptorPanel.setEnabled(editable);
     }
 
     @Override
@@ -164,11 +233,60 @@
     @Override
     public void put(FeatureType type) {
         this.featureType = type;
-        TableModel model = new FeatureTypeTableModel(type);
-        this.tblFields.setModel(model);
+        if( type == null ) {
+            this.store = null;
+        } else {
+            // Nos quedamos una referencia para evitar que se destruya, ya que
+            // el featureTyper se guarda solo una WeakReference.
+            this.store = type.getStore(); 
+        }
+        if( !(type instanceof EditableFeatureType) ) {
+            this.setEditable(false);
+        }
+        this.tableModel = new FeatureTypeTableModel(type);
+        this.tblFields.setModel(this.tableModel);
         if( type.size()>0 ) {
             this.tblFields.getSelectionModel().setSelectionInterval(0, 0);
         }
     }
 
+    private void doNewField() {
+        EditableFeatureType eft = (EditableFeatureType)this.featureType;
+        EditableFeatureAttributeDescriptor descriptor = eft.add(
+                this.getNewFieldName(), 
+                DataTypes.STRING
+        );
+        this.tableModel.fireUpdateEvent();
+        int row = descriptor.getIndex();
+        this.tblFields.getSelectionModel().addSelectionInterval(row,row);
+    }
+    
+    private void doDeleteField() {
+        int row = this.tblFields.getSelectedRow();
+        if( row<0 ) {
+            return;
+        }
+        FeatureAttributeDescriptor descriptor = this.featureType.getAttributeDescriptor(row);
+        ((EditableFeatureType)this.featureType).remove(row);
+        this.tableModel.fireUpdateEvent();
+        if( row >= this.tblFields.getRowCount()) {
+            row = this.tblFields.getRowCount()-1;
+        }
+        this.tblFields.getSelectionModel().addSelectionInterval(row,row);
+    }
+            
+    private String getNewFieldName() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        String prefix = i18n.getTranslation("_Field");
+        String fieldName;
+        for (int i = 1; i < 1000; i++) {
+            fieldName = prefix +"-"+i;
+            if( this.featureType.get(fieldName)==null ) {
+                return fieldName;
+            }
+        }
+        fieldName = prefix + "-" + (new Date()).getTime();
+        return fieldName;
+    }
+
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultFeatureTypeAttributePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultFeatureTypeAttributePanel.java	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/DefaultFeatureTypeAttributePanel.java	(revision 44085)
@@ -1,23 +1,36 @@
 package org.gvsig.fmap.dal.swing.impl.featuretype;
 
+import com.vividsolutions.jts.operation.distance.GeometryLocation;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 import org.cresques.cts.IProjection;
 import org.gvsig.expressionevaluator.Expression;
 import org.gvsig.expressionevaluator.swing.CalculatorController;
 import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
 import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
 import org.gvsig.expressionevaluator.swing.ExpressionPickerController;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.DataTypes;
 import org.gvsig.fmap.dal.expressionevaluator.FeatureAttributeEmulatorExpression;
 import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
 import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
 import org.gvsig.fmap.dal.feature.FeatureAttributeEmulator;
 import org.gvsig.fmap.dal.swing.DALSwingLocator;
+import org.gvsig.fmap.dal.swing.DataSwingManager;
 import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.GeometryLocator;
+import org.gvsig.fmap.geom.GeometryManager;
+import org.gvsig.fmap.geom.type.GeometryType;
 import org.gvsig.timesupport.RelativeInterval;
 import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.dataTypes.DataTypesManager;
@@ -26,20 +39,21 @@
 import org.gvsig.tools.swing.api.ToolsSwingManager;
 import org.gvsig.tools.swing.api.pickercontroller.DatePickerController;
 import org.gvsig.tools.swing.api.pickercontroller.PickerController;
+import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
 
 /**
  *
  * @author jjdelcerro
  */
-public class DefaultFeatureTypeAttributePanel 
-        extends FeatureTypeAttributePanelView 
-        implements FeatureTypeAttributePanel 
-    {
+@SuppressWarnings("UseSpecificCatch")
+public class DefaultFeatureTypeAttributePanel
+        extends FeatureTypeAttributePanelView
+        implements FeatureTypeAttributePanel {
 
     private final List<ListElement<Integer>> fieldTypes;
     private final List<ListElement<Integer>> geometryTypes;
     private final List<ListElement<Integer>> geometrySubtypes;
-    
+
     private DatePickerController pickerIntervalEnd;
     private DatePickerController pickerIntervalStart;
     private CalculatorController<Integer> pickerSize;
@@ -49,8 +63,10 @@
     private PickerController<IProjection> pickerCRS;
     private ExpressionPickerController pickerVirtualField;
 
+    private boolean editable;
 
     public DefaultFeatureTypeAttributePanel() {
+        this.editable = true;
         DataTypesManager dataManager = ToolsLocator.getDataTypesManager();
         this.fieldTypes = new ArrayList<>();
         this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.BOOLEAN), DataTypes.BOOLEAN));
@@ -61,8 +77,9 @@
         this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.DOUBLE), DataTypes.DOUBLE));
         this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.LONG), DataTypes.LONG));
         this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.INTERVAL), DataTypes.INTERVAL));
-        this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.DOUBLE), DataTypes.DOUBLE));
+        this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.INSTANT), DataTypes.INSTANT));
         this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.STRING), DataTypes.STRING));
+        this.fieldTypes.add(new ListElement<>(dataManager.getTypeName(DataTypes.GEOMETRY), DataTypes.GEOMETRY));
         this.fieldTypes.sort(new Comparator<ListElement<Integer>>() {
             @Override
             public int compare(ListElement<Integer> o1, ListElement<Integer> o2) {
@@ -83,7 +100,7 @@
                 return o1.toString().compareTo(o2.toString());
             }
         });
-        
+
         this.geometrySubtypes = new ArrayList<>();
         this.geometrySubtypes.add(new ListElement("2D", Geometry.SUBTYPES.GEOM2D));
         this.geometrySubtypes.add(new ListElement("2DM", Geometry.SUBTYPES.GEOM3D));
@@ -95,10 +112,10 @@
                 return o1.toString().compareTo(o2.toString());
             }
         });
-        
+
         this.initComponents();
     }
-    
+
     private void initComponents() {
         ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager();
         ExpressionEvaluatorSwingManager evaluatorManager = ExpressionEvaluatorSwingLocator.getManager();
@@ -119,15 +136,16 @@
         for (ListElement<Integer> element : this.geometrySubtypes) {
             modelGeomSubtypes.addElement(element);
         }
-        this.cboGeometryType.setModel(modelGeomSubtypes);
-        
+
+        this.cboGeometrySubtype.setModel(modelGeomSubtypes);
+
         swingManager.addClearButton(this.txtDefaultValue);
         swingManager.addClearButton(this.txtFieldName);
         swingManager.addClearButton(this.txtIntervalEnd);
         swingManager.addClearButton(this.txtIntervalStart);
         swingManager.addClearButton(this.txtPrecision);
         swingManager.addClearButton(this.txtSize);
-        
+
         swingManager.setDefaultPopupMenu(this.txtDefaultValue);
         swingManager.setDefaultPopupMenu(this.txtFieldName);
         swingManager.setDefaultPopupMenu(this.txtIntervalEnd);
@@ -138,36 +156,60 @@
         swingManager.setDefaultPopupMenu(this.cboFieldType);
         swingManager.setDefaultPopupMenu(this.cboGeometrySubtype);
         swingManager.setDefaultPopupMenu(this.cboGeometryType);
-        
+
         this.pickerIntervalEnd = swingManager.createDatePickerController(
-                this.txtIntervalEnd, 
+                this.txtIntervalEnd,
                 this.btnIntervalEnd
         );
         this.pickerIntervalStart = swingManager.createDatePickerController(
-                this.txtIntervalStart, 
+                this.txtIntervalStart,
                 this.btnIntervalStart
         );
         this.pickerSize = evaluatorManager.createCalculatorController(
-                this.txtSize,DataTypes.INT
+                this.txtSize, DataTypes.INT
         );
         this.pickerPrecision = evaluatorManager.createCalculatorController(
-                this.txtPrecision,DataTypes.INT
+                this.txtPrecision, DataTypes.INT
         );
         this.pickerFieldName = evaluatorManager.createCalculatorController(
-                this.txtFieldName,DataTypes.STRING
+                this.txtFieldName, DataTypes.STRING
         );
         this.pickerDefaultValue = evaluatorManager.createCalculatorController(
-                this.txtDefaultValue,DataTypes.OBJECT
+                this.txtDefaultValue, DataTypes.OBJECT
         );
-        
+
+        this.btnVirtualField.setText("");
         this.pickerVirtualField = ExpressionEvaluatorSwingLocator.getManager()
                 .createExpressionPickerController(txtVirtualField, btnVirtualField);
 
         this.pickerCRS = DALSwingLocator.getSwingManager()
                 .createProjectionPickerController(this.txtCRS, this.btnCRS);
-        
+
+        this.cboFieldType.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                SwingUtilities.invokeLater(new Runnable() {
+                    @Override
+                    public void run() {
+                        doFieldTypeChanged();
+                    }
+                });
+
+            }
+        });
+
+        this.chkVirtualField.addChangeListener(new ChangeListener() {
+            @Override
+            public void stateChanged(ChangeEvent e) {
+                if (chkVirtualField.isSelected()) {
+                    pickerVirtualField.setEnabled(editable);
+                } else {
+                    pickerVirtualField.setEnabled(false);
+                }
+            }
+        });
     }
-    
+
     @Override
     public JComponent asJComponent() {
         return this;
@@ -175,6 +217,56 @@
 
     @Override
     public EditableFeatureAttributeDescriptor fetch(EditableFeatureAttributeDescriptor descriptor) {
+        try {
+            descriptor.setDataType((int) ListElement.getSelected(this.cboFieldType));
+            descriptor.setName(this.txtFieldName.getText());
+            descriptor.setAllowNull(this.chkAllowNulls.isSelected());
+            descriptor.setIsPrimaryKey(this.chkIsPrimaryKey.isSelected());
+            descriptor.setIsAutomatic(this.chkIsAutomatic.isSelected());
+            descriptor.setSize(this.pickerSize.get());
+            descriptor.setPrecision(this.pickerPrecision.get());
+            descriptor.setDefaultValue(this.pickerDefaultValue.get());
+            switch (descriptor.getType()) {
+                case DataTypes.GEOMETRY:
+                    GeometryManager geomManager = GeometryLocator.getGeometryManager();
+                    GeometryType geomType = geomManager.getGeometryType(
+                            (int) ListElement.getSelected(this.cboGeometryType),
+                            (int) ListElement.getSelected(this.cboGeometrySubtype)
+                    );
+                    descriptor.setGeometryType(geomType);
+                    descriptor.setSRS(this.pickerCRS.get());
+                    break;
+                case DataTypes.INSTANT:
+                case DataTypes.INTERVAL:
+                case DataTypes.DATE:
+                case DataTypes.TIME:
+                case DataTypes.TIMESTAMP:
+                    // FIXME
+                    break;
+                default:
+                    break;
+            }
+            if( this.chkVirtualField.isSelected() && this.pickerVirtualField.isEnabled() ) {
+                Expression expression = this.pickerVirtualField.get();
+                if( expression==null ) {
+                    descriptor.setFeatureAttributeEmulator(null);
+                } else {
+                    DataManager dataManager = DALLocator.getDataManager();
+                    FeatureAttributeEmulatorExpression emulator = dataManager.createFeatureAttributeEmulatorExpression(
+                            descriptor.getFeatureType(),
+                            expression
+                    );
+                    descriptor.setFeatureAttributeEmulator(emulator);
+                }
+            }
+        } catch (Exception ex) {
+            ThreadSafeDialogsManager dialogs = ToolsSwingLocator.getThreadSafeDialogsManager();
+            dialogs.messageDialog(
+                    "Can't retrieve information from user form.", 
+                    "Warning", 
+                    JOptionPane.WARNING_MESSAGE
+            );
+        }
         return descriptor;
     }
 
@@ -189,75 +281,152 @@
         this.chkAllowNulls.setSelected(false);
         this.chkIsAutomatic.setSelected(false);
         this.chkIsPrimaryKey.setSelected(false);
-        
+
         this.chkVirtualField.setSelected(false);
-        this.chkVirtualField.setEnabled(true);
+        this.chkVirtualField.setEnabled(editable);
         this.pickerVirtualField.setEnabled(false);
         this.pickerVirtualField.set(null);
 
-        ListElement.setSelected(cboFieldType, null);
         ListElement.setSelected(cboGeometryType, null);
         ListElement.setSelected(cboGeometrySubtype, null);
+
+        ListElement.setSelected(cboFieldType, DataTypes.STRING);
     }
-    
+
     @Override
     public void put(FeatureAttributeDescriptor descriptor) {
-        if( descriptor == null ) {
+        if (descriptor == null) {
             this.clean();
             return;
         }
+        if (!(descriptor instanceof EditableFeatureAttributeDescriptor)) {
+            this.setEditable(false);
+        }
+        ExpressionEvaluatorSwingManager expressionSwingManager = ExpressionEvaluatorSwingLocator.getManager();
+        this.pickerVirtualField = ExpressionEvaluatorSwingLocator.getManager()
+                .createExpressionPickerController(txtVirtualField, btnVirtualField);
+        if( descriptor.getFeatureType()!=null && descriptor.getFeatureType().getStore()!=null ) {
+            this.pickerVirtualField.addElement(
+                expressionSwingManager.createElement(
+                        DataSwingManager.FEATURE_STORE_EXPRESSION_ELEMENT,
+                        this.pickerVirtualField,
+                        descriptor.getFeatureType().getStore()
+                )
+            );
+        }
+                
         this.pickerDefaultValue.set(descriptor.getDefaultValue());
         this.pickerFieldName.set(descriptor.getName());
         RelativeInterval interval = (RelativeInterval) descriptor.getInterval();
-        if( interval==null ) {
-//            this.pickerIntervalEnd.set(null);
-//            this.pickerIntervalStart.set(null);
+        if (interval == null) {
+            this.pickerIntervalEnd.set(null);
+            this.pickerIntervalStart.set(null);
         } else {
             this.pickerIntervalEnd.set(interval.getEnd().toDate());
             this.pickerIntervalStart.set(interval.getStart().toDate());
         }
         this.pickerPrecision.set(descriptor.getPrecision());
         this.pickerSize.set(descriptor.getSize());
-        
+
         this.chkAllowNulls.setSelected(descriptor.allowNull());
         this.chkIsAutomatic.setSelected(descriptor.isAutomatic());
         this.chkIsPrimaryKey.setSelected(descriptor.isPrimaryKey());
-        
+
         FeatureAttributeEmulator attrEmulator = descriptor.getFeatureAttributeEmulator();
-        if( attrEmulator instanceof FeatureAttributeEmulatorExpression ) {
+        if (attrEmulator instanceof FeatureAttributeEmulatorExpression) {
             Expression expression = ((FeatureAttributeEmulatorExpression) attrEmulator).getExpression();
-            this.chkVirtualField.setEnabled(true);
+            this.chkVirtualField.setEnabled(editable);
             this.chkVirtualField.setSelected(true);
+            this.pickerVirtualField.setEnabled(editable);
             this.pickerVirtualField.set(expression);
-            this.pickerVirtualField.setEnabled(true);
-        } else if( descriptor.isComputed() ) {
+        } else if (descriptor.isComputed()) {
+            this.chkVirtualField.setEnabled(false);
             this.chkVirtualField.setSelected(true);
-            this.chkVirtualField.setEnabled(false);
             this.pickerVirtualField.setEnabled(false);
             this.pickerVirtualField.set(null);
         } else {
+            this.chkVirtualField.setEnabled(editable);
             this.chkVirtualField.setSelected(false);
-            this.chkVirtualField.setEnabled(true);
             this.pickerVirtualField.setEnabled(false);
             this.pickerVirtualField.set(null);
         }
-        
+
         this.pickerCRS.set(descriptor.getSRS());
-        
-        ListElement.setSelected(cboFieldType, descriptor.getType());
-        if( descriptor.getType()==DataTypes.GEOMETRY ) {
+
+        if (descriptor.getGeomType() != null) {
             ListElement.setSelected(cboGeometryType, descriptor.getGeomType().getType());
             ListElement.setSelected(cboGeometrySubtype, descriptor.getGeomType().getSubType());
-            this.cboGeometryType.setEnabled(true);
-            this.cboGeometrySubtype.setEnabled(true);
-        } else {
-            this.cboGeometryType.setEnabled(false);
-            this.cboGeometrySubtype.setEnabled(false);
         }
-        
+        ListElement.setSelected(cboFieldType, descriptor.getType());
+
     }
 
-    public void setReadonly(boolean readonly) {
-        
+    private void doFieldTypeChanged() {
+        try {
+            Integer fieldType = (Integer) ListElement.getSelected(this.cboFieldType);
+            if (fieldType == null) {
+                fieldType = DataTypes.UNKNOWN;
+            }
+            switch (fieldType) {
+                case DataTypes.GEOMETRY:
+                    this.cboGeometryType.setEnabled(editable);
+                    this.cboGeometrySubtype.setEnabled(editable);
+                    this.pickerCRS.setEnabled(editable);
+                    this.cboDateFormat.setEnabled(false);
+                    this.pickerIntervalStart.setEnabled(false);
+                    this.pickerIntervalEnd.setEditable(false);
+                    this.tabAditionalFields.setEnabledAt(1, true);
+                    this.tabAditionalFields.setEnabledAt(2, false);
+                    break;
+                case DataTypes.INSTANT:
+                case DataTypes.INTERVAL:
+                case DataTypes.DATE:
+                case DataTypes.TIME:
+                case DataTypes.TIMESTAMP:
+                    this.cboGeometryType.setEnabled(false);
+                    this.cboGeometrySubtype.setEnabled(false);
+                    this.pickerCRS.setEnabled(false);
+                    this.cboDateFormat.setEnabled(editable);
+                    this.pickerIntervalStart.setEnabled(editable);
+                    this.pickerIntervalEnd.setEditable(editable);
+                    this.tabAditionalFields.setEnabledAt(1, false);
+                    this.tabAditionalFields.setEnabledAt(2, true);
+                    break;
+                default:
+                    this.cboGeometryType.setEnabled(false);
+                    this.cboGeometrySubtype.setEnabled(false);
+                    this.pickerCRS.setEnabled(false);
+                    this.cboDateFormat.setEnabled(false);
+                    this.pickerIntervalStart.setEnabled(false);
+                    this.pickerIntervalEnd.setEditable(false);
+                    this.tabAditionalFields.setEnabledAt(1, false);
+                    this.tabAditionalFields.setEnabledAt(2, false);
+            }
+        } catch (Exception ex) {
+
+        }
     }
+
+    public void setEditable(boolean editable) {
+        this.editable = editable;
+        this.pickerDefaultValue.setEditable(editable);
+        this.pickerFieldName.setEditable(editable);
+        this.pickerIntervalEnd.setEditable(editable);
+        this.pickerIntervalStart.setEditable(editable);
+        this.pickerPrecision.setEditable(editable);
+        this.pickerSize.setEditable(editable);
+
+        this.chkAllowNulls.setEnabled(editable);
+        this.chkIsAutomatic.setEnabled(editable);
+        this.chkIsPrimaryKey.setEnabled(editable);
+
+        this.chkVirtualField.setEnabled(editable);
+        this.pickerVirtualField.setEditable(editable);
+
+        this.cboDateFormat.setEnabled(editable);
+        this.cboFieldType.setEnabled(editable);
+        this.cboGeometryType.setEnabled(editable);
+        this.cboGeometrySubtype.setEnabled(editable);
+
+    }
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanelView.xml	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanelView.xml	(revision 44085)
@@ -74,7 +74,7 @@
              </object>
             </at>
             <at name="name">tblFields</at>
-            <at name="width">881</at>
+            <at name="width">884</at>
             <at name="scollBars">
              <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
               <at name="name">scollBars</at>
@@ -212,7 +212,7 @@
           <at name="properties">
            <object classname="com.jeta.forms.store.support.PropertyMap">
             <at name="name">pnlField</at>
-            <at name="width">883</at>
+            <at name="width">886</at>
             <at name="height">12</at>
            </object>
           </at>
@@ -238,8 +238,8 @@
          </at>
          <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
         </super>
-        <at name="id">embedded.406471071</at>
-        <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0)</at>
+        <at name="id">embedded.1045919040</at>
+        <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0)</at>
         <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
         <at name="components">
          <object classname="java.util.LinkedList">
@@ -289,7 +289,7 @@
                  </at>
                  <at name="actionCommand">_New</at>
                  <at name="name">btnNew</at>
-                 <at name="width">84</at>
+                 <at name="width">81</at>
                  <at name="text">_New</at>
                  <at name="height">22</at>
                 </object>
@@ -345,7 +345,7 @@
                  </at>
                  <at name="actionCommand">_Delete</at>
                  <at name="name">btnDelete</at>
-                 <at name="width">84</at>
+                 <at name="width">81</at>
                  <at name="text">_Delete</at>
                  <at name="height">22</at>
                 </object>
@@ -355,62 +355,6 @@
             </object>
            </at>
           </item>
-          <item >
-           <at name="value">
-            <object classname="com.jeta.forms.store.memento.BeanMemento">
-             <super classname="com.jeta.forms.store.memento.ComponentMemento">
-              <at name="cellconstraints">
-               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
-                <at name="column">2</at>
-                <at name="row">5</at>
-                <at name="colspan">1</at>
-                <at name="rowspan">1</at>
-                <at name="halign">default</at>
-                <at name="valign">default</at>
-                <at name="insets" object="insets">0,0,0,0</at>
-               </object>
-              </at>
-              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
-             </super>
-             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
-             <at name="beanclass">javax.swing.JButton</at>
-             <at name="beanproperties">
-              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
-               <at name="classname">javax.swing.JButton</at>
-               <at name="properties">
-                <object classname="com.jeta.forms.store.support.PropertyMap">
-                 <at name="border">
-                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
-                   <super classname="com.jeta.forms.store.properties.BorderProperty">
-                    <at name="name">border</at>
-                   </super>
-                   <at name="borders">
-                    <object classname="java.util.LinkedList">
-                     <item >
-                      <at name="value">
-                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
-                        <super classname="com.jeta.forms.store.properties.BorderProperty">
-                         <at name="name">border</at>
-                        </super>
-                       </object>
-                      </at>
-                     </item>
-                    </object>
-                   </at>
-                  </object>
-                 </at>
-                 <at name="actionCommand">_Rename</at>
-                 <at name="name">btnRename</at>
-                 <at name="width">84</at>
-                 <at name="text">_Rename</at>
-                 <at name="height">22</at>
-                </object>
-               </at>
-              </object>
-             </at>
-            </object>
-           </at>
-          </item>
          </object>
         </at>
         <at name="properties">
@@ -468,7 +412,7 @@
         <at name="cellpainters">
          <object classname="com.jeta.forms.store.support.Matrix">
           <at name="rows">
-           <object classname="[Ljava.lang.Object;" size="6">
+           <object classname="[Ljava.lang.Object;" size="5">
             <at name="item" index="0">
              <object classname="[Ljava.lang.Object;" size="3"/>
             </at>
@@ -484,9 +428,6 @@
             <at name="item" index="4">
              <object classname="[Ljava.lang.Object;" size="3"/>
             </at>
-            <at name="item" index="5">
-             <object classname="[Ljava.lang.Object;" size="3"/>
-            </at>
            </object>
           </at>
          </object>
@@ -525,7 +466,7 @@
          </at>
          <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
         </super>
-        <at name="id">embedded.2064566679</at>
+        <at name="id">embedded.1803134228</at>
         <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,FILL:2DLU:GROW(1.0)</at>
         <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
         <at name="components">
@@ -575,8 +516,8 @@
                   </object>
                  </at>
                  <at name="actionCommand">JButton</at>
-                 <at name="name">btnAccept</at>
-                 <at name="width">84</at>
+                 <at name="name">btnFormFieldAccept</at>
+                 <at name="width">81</at>
                  <at name="text">_Accept</at>
                  <at name="height">22</at>
                 </object>
@@ -631,8 +572,8 @@
                   </object>
                  </at>
                  <at name="actionCommand">JButton</at>
-                 <at name="name">btnDiscard</at>
-                 <at name="width">84</at>
+                 <at name="name">btnFormFieldDiscard</at>
+                 <at name="width">81</at>
                  <at name="text">_Discard</at>
                  <at name="height">22</at>
                 </object>
@@ -659,7 +600,7 @@
               </at>
              </object>
             </at>
-            <at name="name"></at>
+            <at name="name"/>
             <at name="fill">
              <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
               <at name="name">fill</at>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanelView.java	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/featuretype/FeatureTypePanelView.java	(revision 44085)
@@ -24,9 +24,8 @@
    JPanel pnlField = new JPanel();
    JButton btnNew = new JButton();
    JButton btnDelete = new JButton();
-   JButton btnRename = new JButton();
-   JButton btnAccept = new JButton();
-   JButton btnDiscard = new JButton();
+   JButton btnFormFieldAccept = new JButton();
+   JButton btnFormFieldDiscard = new JButton();
 
    /**
     * Default constructor
@@ -143,7 +142,7 @@
    public JPanel createPanel1()
    {
       JPanel jpanel1 = new JPanel();
-      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0)");
+      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0)");
       CellConstraints cc = new CellConstraints();
       jpanel1.setLayout(formlayout1);
 
@@ -157,12 +156,7 @@
       btnDelete.setText("_Delete");
       jpanel1.add(btnDelete,cc.xy(2,3));
 
-      btnRename.setActionCommand("_Rename");
-      btnRename.setName("btnRename");
-      btnRename.setText("_Rename");
-      jpanel1.add(btnRename,cc.xy(2,5));
-
-      addFillComponents(jpanel1,new int[]{ 1,3 },new int[]{ 1,2,3,4,5,6 });
+      addFillComponents(jpanel1,new int[]{ 1,3 },new int[]{ 1,2,3,4,5 });
       return jpanel1;
    }
 
@@ -173,15 +167,15 @@
       CellConstraints cc = new CellConstraints();
       jpanel1.setLayout(formlayout1);
 
-      btnAccept.setActionCommand("JButton");
-      btnAccept.setName("btnAccept");
-      btnAccept.setText("_Accept");
-      jpanel1.add(btnAccept,cc.xy(2,1));
+      btnFormFieldAccept.setActionCommand("JButton");
+      btnFormFieldAccept.setName("btnFormFieldAccept");
+      btnFormFieldAccept.setText("_Accept");
+      jpanel1.add(btnFormFieldAccept,cc.xy(2,1));
 
-      btnDiscard.setActionCommand("JButton");
-      btnDiscard.setName("btnDiscard");
-      btnDiscard.setText("_Discard");
-      jpanel1.add(btnDiscard,cc.xy(2,3));
+      btnFormFieldDiscard.setActionCommand("JButton");
+      btnFormFieldDiscard.setName("btnFormFieldDiscard");
+      btnFormFieldDiscard.setText("_Discard");
+      jpanel1.add(btnFormFieldDiscard,cc.xy(2,3));
 
       addFillComponents(jpanel1,new int[]{ 1,3 },new int[]{ 1,2,3,4 });
       return jpanel1;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/Test.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/Test.java	(revision 44084)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/Test.java	(revision 44085)
@@ -1,59 +0,0 @@
-package org.gvsig.fmap.dal.swing.impl.featuretype;
-
-import java.io.File;
-import java.net.URL;
-import org.gvsig.fmap.crs.CRSFactory;
-import org.gvsig.fmap.dal.DALLocator;
-import org.gvsig.fmap.dal.DataManager;
-import org.gvsig.fmap.dal.feature.FeatureStore;
-import org.gvsig.fmap.dal.swing.DALSwingLocator;
-import org.gvsig.fmap.dal.swing.DataSwingManager;
-import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
-import org.gvsig.tools.swing.api.ToolsSwingLocator;
-import org.gvsig.tools.swing.api.windowmanager.Dialog;
-import org.gvsig.tools.swing.api.windowmanager.WindowManager;
-import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
-
-/**
- *
- * @author jjdelcerro
- */
-public class Test {
-
-    /**
-     * @param args the command line arguments
-     */
-    public static void main(String[] args) throws Exception {
-        Test test = new Test();
-        new DefaultLibrariesInitializer().fullInitialize();
-        test.run();
-    }
-    
-    public void run() throws Exception {
-        WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
-        DataSwingManager manager = DALSwingLocator.getSwingManager();
-        
-        URL resource = this.getClass().getResource("/org/gvsig/esp_comaut/esp_comaut.dbf");
-        FeatureStore store = openShape(resource);
-        FeatureTypePanel panel = new DefaultFeatureTypePanel();
-        panel.put(store.getDefaultFeatureType());
-        
-        Dialog dialog = windowManager.createDialog(
-                panel.asJComponent(),
-                "Test", 
-                null,
-                WindowManager_v2.BUTTONS_OK_CANCEL
-        );
-        dialog.show(WindowManager.MODE.WINDOW);        
-    }
-  
-    public FeatureStore openShape(URL resource) throws Exception {
-        DataManager dataManager = DALLocator.getDataManager();
-        FeatureStore store = (FeatureStore) dataManager.openStore(
-                "DBF", 
-                "dbffile", new File(resource.toURI())
-//                "CRS", CRSFactory.getCRS("EPSG:23030")
-        );
-        return store;
-    }
-}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/TestEditable.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/TestEditable.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/TestEditable.java	(revision 44085)
@@ -0,0 +1,58 @@
+package org.gvsig.fmap.dal.swing.impl.featuretype;
+
+import java.io.File;
+import java.net.URL;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.swing.DALSwingLocator;
+import org.gvsig.fmap.dal.swing.DataSwingManager;
+import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.Dialog;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class TestEditable {
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String[] args) throws Exception {
+        TestEditable test = new TestEditable();
+        new DefaultLibrariesInitializer().fullInitialize();
+        test.run();
+    }
+    
+    public void run() throws Exception {
+        WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
+        DataSwingManager manager = DALSwingLocator.getSwingManager();
+        
+        URL resource = this.getClass().getResource("/org/gvsig/esp_comaut/esp_comaut.dbf");
+        FeatureStore store = openShape(resource);
+        FeatureTypePanel panel = new DefaultFeatureTypePanel();
+        panel.put(store.getDefaultFeatureType().getEditable());
+        
+        Dialog dialog = windowManager.createDialog(
+                panel.asJComponent(),
+                "Test", 
+                null,
+                WindowManager_v2.BUTTONS_OK_CANCEL
+        );
+        dialog.show(WindowManager.MODE.WINDOW);        
+    }
+  
+    public FeatureStore openShape(URL resource) throws Exception {
+        DataManager dataManager = DALLocator.getDataManager();
+        FeatureStore store = (FeatureStore) dataManager.openStore(
+                "DBF", 
+                "dbffile", new File(resource.toURI())
+//                "CRS", CRSFactory.getCRS("EPSG:23030")
+        );
+        return store;
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/TestNotEditable.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/TestNotEditable.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/test/java/org/gvsig/fmap/dal/swing/impl/featuretype/TestNotEditable.java	(revision 44085)
@@ -0,0 +1,58 @@
+package org.gvsig.fmap.dal.swing.impl.featuretype;
+
+import java.io.File;
+import java.net.URL;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.swing.DALSwingLocator;
+import org.gvsig.fmap.dal.swing.DataSwingManager;
+import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.Dialog;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class TestNotEditable {
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String[] args) throws Exception {
+        TestNotEditable test = new TestNotEditable();
+        new DefaultLibrariesInitializer().fullInitialize();
+        test.run();
+    }
+    
+    public void run() throws Exception {
+        WindowManager_v2 windowManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
+        DataSwingManager manager = DALSwingLocator.getSwingManager();
+        
+        URL resource = this.getClass().getResource("/org/gvsig/esp_comaut/esp_comaut.dbf");
+        FeatureStore store = openShape(resource);
+        FeatureTypePanel panel = new DefaultFeatureTypePanel();
+        panel.put(store.getDefaultFeatureType());
+        
+        Dialog dialog = windowManager.createDialog(
+                panel.asJComponent(),
+                "Test", 
+                null,
+                WindowManager_v2.BUTTONS_OK_CANCEL
+        );
+        dialog.show(WindowManager.MODE.WINDOW);        
+    }
+  
+    public FeatureStore openShape(URL resource) throws Exception {
+        DataManager dataManager = DALLocator.getDataManager();
+        FeatureStore store = (FeatureStore) dataManager.openStore(
+                "DBF", 
+                "dbffile", new File(resource.toURI())
+//                "CRS", CRSFactory.getCRS("EPSG:23030")
+        );
+        return store;
+    }
+}
