Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/InitializeApplicationExtension.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/InitializeApplicationExtension.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/InitializeApplicationExtension.java	(revision 44129)
@@ -51,7 +51,9 @@
 import org.gvsig.app.project.documents.view.toolListeners.InfoListener;
 import org.gvsig.app.util.BaseOpenErrorHandler;
 import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.OpenErrorHandler;
+import org.gvsig.fmap.dal.feature.DataProfile;
 import org.gvsig.fmap.dal.resource.ResourceManager;
 import org.gvsig.fmap.dal.resource.exception.DisposeResorceManagerException;
 import org.gvsig.installer.lib.api.InstallerLocator;
@@ -60,6 +62,9 @@
 import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.dynobject.DynObject;
 import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.SimpleImage;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -73,8 +78,23 @@
     @Override
     public void initialize() {
 
+        final ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
         DALLocator.registerFeatureTypeDefinitionsManager(DefaultFeatureTypeDefinitionsManager.class);
+        
+        DataManager dataManager = DALLocator.getDataManager();
+        dataManager.registerDataProfile(new DataProfile() {
+            @Override
+            public String getName() {
+                return "Image";
+            }
 
+            @Override
+            public Object createData(Object data) {
+                SimpleImage image = toolsSwingManager.createSimpleImage(data);
+                return data;
+            }
+        });
+        
         InfoListener.initializeExtensionPoint();
 
         registerIcons();
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/SelectByAttributes.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/SelectByAttributes.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/SelectByAttributes.java	(revision 44129)
@@ -7,21 +7,15 @@
 import javax.swing.JButton;
 import javax.swing.JPanel;
 import org.gvsig.expressionevaluator.Expression;
-import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
-import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
-import org.gvsig.expressionevaluator.MutableSymbolTable;
-import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
-import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
 import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
-import org.gvsig.fmap.dal.exception.DataException;
-import org.gvsig.fmap.dal.expressionevaluator.FeatureSymbolTable;
 import org.gvsig.fmap.dal.feature.Feature;
 import org.gvsig.fmap.dal.feature.FeatureQuery;
 import org.gvsig.fmap.dal.feature.FeatureSelection;
 import org.gvsig.fmap.dal.feature.FeatureSet;
 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.ToolsLocator;
 import org.gvsig.tools.i18n.I18nManager;
@@ -46,38 +40,12 @@
     public void showWindow(String title, final FeatureStore store, WindowManager.MODE mode) {
         I18nManager i18n = ToolsLocator.getI18nManager();
         WindowManager windowManager = ToolsSwingLocator.getWindowManager();
-        ExpressionEvaluatorSwingManager swingManager = ExpressionEvaluatorSwingLocator.getManager();
-        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
-        DataManager dataManager = DALLocator.getDataManager();
+        DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
         
-        Feature sampleFeature = null;
-        try {
-            sampleFeature = store.getFeatureSelection().first();
-            if( sampleFeature == null ) {
-                sampleFeature = store.first();
-            }
-        } catch (DataException ex) {
-        }      
-        
         final JPanel panel = new JPanel();
         panel.setLayout(new BorderLayout());
 
-        final JExpressionBuilder builder = swingManager.createJExpressionBuilder();
-        if( sampleFeature!=null ) {
-            FeatureSymbolTable featureSymbolTable = dataManager.createFeatureSymbolTable();
-            featureSymbolTable.setFeature(sampleFeature);
-            builder.setPreviewSymbolTable(featureSymbolTable.createParent());
-        }
-        
-        builder.addSymbolTable(DataManager.FEATURE_SYMBOL_TABLE);
-        builder.addElement(swingManager.createElement("View"));
-        builder.addElement(
-             swingManager.createElement(
-                DataSwingManager.FEATURE_STORE_EXPRESSION_ELEMENT,
-                builder,
-                store
-            )
-        );
+        final JExpressionBuilder builder = dataSwingManager.createQueryFilterExpresion(store);
         panel.add(builder.asJComponent(), BorderLayout.CENTER);
         JPanel buttons = new JPanel();
         buttons.setLayout(new FlowLayout(FlowLayout.RIGHT, 4, 4));
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/ProjectSymbolTable.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/ProjectSymbolTable.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/ProjectSymbolTable.java	(revision 44129)
@@ -1,573 +0,0 @@
-package org.gvsig.app.project;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.Range;
-import org.cresques.cts.IProjection;
-import org.gvsig.app.ApplicationLocator;
-import org.gvsig.app.ApplicationManager;
-import org.gvsig.app.project.documents.Document;
-import org.gvsig.app.project.documents.view.ViewDocument;
-import org.gvsig.app.project.documents.view.ViewManager;
-import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
-import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
-import org.gvsig.expressionevaluator.Interpreter;
-import org.gvsig.expressionevaluator.spi.AbstractFunction;
-import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
-import org.gvsig.fmap.crs.CRSFactory;
-import org.gvsig.fmap.dal.feature.Feature;
-import org.gvsig.fmap.dal.feature.FeatureQuery;
-import org.gvsig.fmap.dal.feature.FeatureSelection;
-import org.gvsig.fmap.dal.feature.FeatureSet;
-import org.gvsig.fmap.dal.feature.FeatureStore;
-import org.gvsig.fmap.geom.Geometry;
-import org.gvsig.fmap.geom.primitive.Envelope;
-import org.gvsig.fmap.geom.primitive.Point;
-import org.gvsig.fmap.mapcontext.MapContext;
-import org.gvsig.fmap.mapcontext.layers.FLayer;
-import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
-import org.gvsig.fmap.mapcontrol.AreaAndPerimeterCalculator;
-import org.gvsig.temporarystorage.TemporaryStorageGroup;
-import org.gvsig.temporarystorage.TemporaryStorageLocator;
-import org.gvsig.temporarystorage.TemporaryStorageManager;
-
-/**
- *
- * @author jjdelcerro
- */
-@SuppressWarnings("UseSpecificCatch")
-public class ProjectSymbolTable extends AbstractSymbolTable {
-
-    private abstract class CachedValue<T> {
-
-        T value = null;
-        long lastAccess = 0;
-
-        protected abstract void reload();
-
-        public boolean isExpired() {
-            long now = System.currentTimeMillis();
-            return now - lastAccess > 3000;
-        }
-
-        public T get() {
-            if (isExpired()) {
-                reload();
-            }
-            lastAccess = System.currentTimeMillis();
-            return value;
-        }
-    }
-
-    private class ProjectValue extends CachedValue<Project> {
-
-        @Override
-        protected void reload() {
-            value = ProjectManager.getInstance().getCurrentProject();
-        }
-
-    }
-
-    private class CurrentViewValue extends CachedValue<ViewDocument> {
-
-        @Override
-        protected void reload() {
-            ApplicationManager application = ApplicationLocator.getManager();
-            ViewDocument viewdoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
-            value = viewdoc;
-        }
-
-    }
-
-    private class CurrentViewEnvelopeValue extends CachedValue<Geometry> {
-
-        @Override
-        protected void reload() {
-            ApplicationManager application = ApplicationLocator.getManager();
-            ViewDocument viewdoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
-            if( viewdoc == null ) {
-                value = null;
-                return;
-            }
-            value = viewdoc.getMapContext().getViewPort().getEnvelope().getGeometry();
-        }
-
-    }
-
-    private class PropertiesValue extends CachedValue<Map<File, Properties>> {
-
-        @Override
-        protected void reload() {
-            value = new HashMap<>();
-        }
-    }
-
-    private class CurrentProjectFunction extends AbstractFunction {
-
-        public CurrentProjectFunction() {
-            super(
-                    "Project",
-                    "project",
-                    Range.is(0),
-                    "Access to the current project loaded in gvSIG desktop.\n",
-                    "project()",
-                    null,
-                    "Project"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            return currentProject.get();
-        }
-
-    }
-
-    private class FirstSelectedFeatureFunction extends AbstractFunction {
-
-        public FirstSelectedFeatureFunction() {
-            super(
-                    "Project",
-                    "firstSelectedFeature",
-                    Range.between(3, 4),
-                    "Access to the first selected feature of the layer, and "
-                    + "return the value of the attribute.",
-                    "firstSelectedFeature({{view}}, layer, attribute, defaulValue)",
-                    new String[]{
-                        "view - String value with the name of a view",
-                        "layer - String value with the name of a layer in the indicated view",
-                        "attribute - String value with the name of the attribute in the indicated layer",
-                        "defaultValue - Optional. Value to use if the indicated "
-                        + "attribute can not be accessed. For example, if the "
-                        + "view or layer does not exist, or it does not have "
-                        + "selected elements."
-                    },
-                    "Object"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            Object defaultValue = null;
-            String viewName = getStr(args, 0);
-            String layerName = getStr(args, 1);
-            String attrName = getStr(args, 2);
-            if (args.length == 4) {
-                defaultValue = getObject(args, 3);
-            }
-            try {
-                Project project = currentProject.get();
-                ViewDocument view = (ViewDocument) project.getDocument(viewName, ViewManager.TYPENAME);
-                if (view == null) {
-                    return defaultValue;
-                }
-                FLayer layer = view.getLayer(layerName);
-                if (!(layer instanceof FLyrVect)) {
-                    return defaultValue;
-                }
-                FeatureSelection selection = ((FLyrVect) layer).getFeatureStore().getFeatureSelection();
-                if (selection == null || selection.isEmpty()) {
-                    return defaultValue;
-                }
-                Feature feature = selection.first();
-                if (feature == null) {
-                    return defaultValue;
-                }
-                return feature.get(attrName);
-            } catch (Exception ex) {
-                return defaultValue;
-            }
-        }
-
-    }
-
-    private class FirstFeatureFunction extends AbstractFunction {
-
-        public FirstFeatureFunction() {
-            super(
-                    "Project",
-                    "firstFeature",
-                    Range.between(3, 6),
-                    "Access to the first feature of the layer, and "
-                    + "return the value of the attribute.",
-                    "firstFeature({{view}}, layer, attribute, filter, order, defaulValue)",
-                    new String[]{
-                        "view - String value with the name of a view",
-                        "layer - String value with the name of a layer in the indicated view",
-                        "attribute - String value with the name of the attribute in the indicated layer",
-                        "filter - Optional. String value with a filter expression",
-                        "order - Optional. String value with the order. must be a string with the names of separate fields with commas",
-                        "defaultValue - Optional. Value to use if the indicated "
-                        + "attribute can not be accessed. For example, if the "
-                        + "view or layer does not exist."
-                    },
-                    "Object"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            Object defaultValue = null;
-            String filter = null;
-            String order = null;
-            String viewName = getStr(args, 0);
-            String layerName = getStr(args, 1);
-            String attrName = getStr(args, 2);
-            switch (args.length) {
-                case 4:
-                    filter = getStr(args, 3);
-                    break;
-                case 5:
-                    filter = getStr(args, 3);
-                    order = getStr(args, 4);
-                    break;
-                case 6:
-                    filter = getStr(args, 3);
-                    order = getStr(args, 4);
-                    defaultValue = getObject(args, 6);
-                    break;
-            }
-            try {
-                Project project = currentProject.get();
-                ViewDocument view = (ViewDocument) project.getDocument(viewName, ViewManager.TYPENAME);
-                if (view == null) {
-                    return defaultValue;
-                }
-                FLayer layer = view.getLayer(layerName);
-                if (!(layer instanceof FLyrVect)) {
-                    return defaultValue;
-                }
-                FeatureStore store = ((FLyrVect) layer).getFeatureStore();
-                FeatureSet set;
-                if (filter == null && order == null) {
-                    set = store.getFeatureSet();
-                } else {
-                    FeatureQuery query = store.createFeatureQuery();
-                    if (filter != null) {
-                        query.addFilter(filter);
-                    }
-                    if (order != null) {
-                        query.getOrder().add(order);
-                    }
-                    set = store.getFeatureSet(query);
-                }
-                Feature feature = set.first();
-                if (feature == null) {
-                    return defaultValue;
-                }
-                return feature.get(attrName);
-            } catch (Exception ex) {
-                return defaultValue;
-            }
-        }
-
-    }
-
-    private class ViewFunction extends AbstractFunction {
-
-        public ViewFunction() {
-            super(
-                    "Project",
-                    "view",
-                    Range.is(1),
-                    "Access to the indicated view",
-                    "view({{viewName}})",
-                    new String[]{
-                        "view - String value with the name of a view"
-                    },
-                    "DocumentView"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            String viewName = getStr(args, 0);
-            Project project = currentProject.get();
-            ViewDocument view = (ViewDocument) project.getDocument(viewName, ViewManager.TYPENAME);
-            return view;
-        }
-
-    }
-
-    private class ViewBBoxFunction extends AbstractFunction {
-
-        public ViewBBoxFunction() {
-            super(
-                    "Project",
-                    "viewbbox",
-                    Range.is(0),
-                    "Return the BBox of the active view.",
-                    "viewbbox()",
-                    null,
-                    "Geometry"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            return currentViewEnvelope.get();
-        }
-
-    }
-
-
-    private class SavedPointFunction extends AbstractFunction {
-
-        public SavedPointFunction() {
-            super(
-                    "Project",
-                    "savedpoint",
-                    Range.is(1),
-                    "Return the value of the saved point with the name indicated.\n"
-                            + "If the named point do not exists return null.",
-                    "savedpoint({{name}})",
-                    new String[]{
-                        "name - String value with the name of the point"
-                    },
-                    "Geometry"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager();
-            TemporaryStorageGroup storage = manager.create("Points",Point.class);
-            Geometry value = (Geometry) storage.get(getStr(args, 0));
-            return value;
-        }
-
-    }
-
-    private class AreaFunction extends AbstractFunction {
-
-        public AreaFunction() {
-            super(
-                    "Project",
-                    "Area",
-                    Range.between(2,3),
-                    "Calculate the area of the geometry in the indicated units",
-                    "Area({{geometry}}, \"m\")",
-                    new String[]{
-                        "geometry - Geometry",
-                        "Projection - Optional. Projection of the geometry or a string with the projection name",
-                        "units - String value with the name the units to use"
-                    },
-                    "Double"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            int units = 0;
-            IProjection proj = null;
-            Geometry geom = getGeom(args, 0);
-            switch( args.length ) {
-                case 2:
-                    units = getUnits(args, 1);
-                    break;
-                case 3:
-                    proj = getProjection(args, 1);
-                    units = getUnits(args, 2);
-                    break;
-            }
-            if (proj == null) {
-                proj = geom.getProjection();
-            }
-            AreaAndPerimeterCalculator calculator = new AreaAndPerimeterCalculator();
-            double area = calculator.area(geom, proj, units);
-            return area;
-        }
-    }
-
-    private class PerimeterFunction extends AbstractFunction {
-
-        public PerimeterFunction() {
-            super(
-                    "Project",
-                    "Perimeter",
-                    Range.between(2,3),
-                    "Calculate the perimeter of the geometry in the indicated units",
-                    "Perimeter({{geometry}}, \"m\")",
-                    new String[]{
-                        "geometry - Geometry",
-                        "Projection - Optional. Projection of the geometry or a string with the projection name",
-                        "units - String value with the name the units to use"
-                    },
-                    "Double"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            int units = 0;
-            IProjection proj = null;
-            Geometry geom = getGeom(args, 0);
-            switch( args.length ) {
-                case 2:
-                    units = getUnits(args, 1);
-                    break;
-                case 3:
-                    proj = getProjection(args, 1);
-                    units = getUnits(args, 2);
-                    break;
-            }
-            if (proj == null) {
-                proj = geom.getProjection();
-            }
-            AreaAndPerimeterCalculator calculator = new AreaAndPerimeterCalculator();
-            double area = calculator.perimeter(geom, proj, units);
-            return area;
-        }
-    }
-
-    private class PropertyFunction extends AbstractFunction {
-
-        public PropertyFunction() {
-            super(
-                    "Project",
-                    "property",
-                    Range.between(2, 3),
-                    "Access to a property value in a properties file. If the"
-                    + "indicated filename is not absolute, access it relative"
-                    + "to the project.",
-                    "property({{filename}}, name, defaultValue)",
-                    new String[]{
-                        "filename - String value with the name of the properties file",
-                        "name - String value with the name of the property to retrieve from the file",
-                        "defaultValue - Optional. Default value if can't access the file or the property",},
-                    "String"
-            );
-        }
-
-        @Override
-        public Object call(Interpreter interpreter, Object[] args) throws Exception {
-            String filename = getStr(args, 0);
-            String name = getStr(args, 1);
-            String defaultValue = null;
-            if (args.length == 3) {
-                defaultValue = getStr(args, 2);
-            }
-
-            File file = new File(filename);
-            if (!file.isAbsolute()) {
-                Project project = currentProject.get();
-                if (project.getFile() == null) {
-                    return defaultValue;
-                }
-                file = new File(project.getFile().getParent(), filename);
-            }
-            Map<File, Properties> x = propertiesFiles.get();
-            Properties properties = x.get(file);
-            if (properties == null) {
-                properties = new Properties();
-                FileInputStream in = null;
-                try {
-                    in = new FileInputStream(file);
-                    properties.load(in);
-                } catch (Exception ex) {
-                    return defaultValue;
-                } finally {
-                    IOUtils.closeQuietly(in);
-                }
-                x.put(file, properties);
-            }
-            String value = properties.getProperty(name, defaultValue);
-            return value;
-        }
-
-    }
-
-    ProjectValue currentProject = new ProjectValue();
-    CurrentViewValue currentView = new CurrentViewValue();
-    CurrentViewEnvelopeValue currentViewEnvelope = new CurrentViewEnvelopeValue();
-    PropertiesValue propertiesFiles = new PropertiesValue();
-
-    @SuppressWarnings("OverridableMethodCallInConstructor")
-    public ProjectSymbolTable() {
-        super("Project");
-        this.addFunction(new CurrentProjectFunction());
-        this.addFunction(new FirstSelectedFeatureFunction());
-        this.addFunction(new FirstFeatureFunction());
-        this.addFunction(new ViewFunction());
-        this.addFunction(new ViewBBoxFunction());
-        this.addFunction(new PropertyFunction());
-        this.addFunction(new AreaFunction());
-        this.addFunction(new PerimeterFunction());
-        this.addFunction(new SavedPointFunction());
-    }
-
-    private MapContext getMapContext(Feature feature) {
-        FeatureStore store = feature.getStore();
-        Project project = ProjectManager.getInstance().getCurrentProject();
-        project.getDocuments(ViewManager.TYPENAME);
-        for (Document document : project.getDocuments(ViewManager.TYPENAME)) {
-            ViewDocument view = (ViewDocument) document;
-            MapContext mapContext = view.getMapContext();
-            FLayer layer = getLayer(mapContext, store);
-            if (layer != null) {
-                return mapContext;
-            }
-        }
-        return null;
-    }
-
-    private FLayer getLayer(MapContext mapContext, FeatureStore store) {
-        Iterator<FLayer> it = mapContext.deepiterator();
-        while (it.hasNext()) {
-            FLayer layer = it.next();
-            if (layer instanceof FLyrVect) {
-                FeatureStore layer_store = ((FLyrVect) layer).getFeatureStore();
-                if (layer_store == store) {
-                    return layer;
-                }
-            }
-        }
-        return null;
-    }
-
-    private IProjection getProjection(Object[] args, int i) {
-        Object value = args[i];
-        if (value == null) {
-            return null;
-        }
-        if (value instanceof IProjection) {
-            return (IProjection) value;
-        }
-        String code = value.toString();
-        return CRSFactory.getCRS(code);
-    }
-
-    private int getUnits(Object[] args, int i) {
-        Object value = args[i];
-        if (value == null) {
-            throw new IllegalArgumentException("Illegal unit value 'null'");
-        }
-        if (value instanceof Number) {
-            return ((Number) value).intValue();
-        }
-        String name = value.toString();
-        String[] names = MapContext.getAreaAbbr();
-        for (int j = 0; j < names.length; j++) {
-            if (name.equalsIgnoreCase(names[j])) {
-                return j;
-            }
-        }
-        names = MapContext.getAreaNames();
-        for (int j = 0; j < names.length; j++) {
-            if (name.equalsIgnoreCase(names[j])) {
-                return j;
-            }
-        }
-        throw new IllegalArgumentException("Illegal unit name '" + name + "'");
-    }
-
-    public static void selfRegister() {
-        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
-        manager.registerSymbolTable(new ProjectSymbolTable(), true);
-    }
-}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTable.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTable.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTable.java	(revision 44129)
@@ -0,0 +1,575 @@
+package org.gvsig.app.project.symboltables;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.Range;
+import org.cresques.cts.IProjection;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.ViewManager;
+import org.gvsig.expressionevaluator.Interpreter;
+import org.gvsig.expressionevaluator.spi.AbstractFunction;
+import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
+import org.gvsig.fmap.crs.CRSFactory;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureSelection;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.AreaAndPerimeterCalculator;
+import org.gvsig.temporarystorage.TemporaryStorageGroup;
+import org.gvsig.temporarystorage.TemporaryStorageLocator;
+import org.gvsig.temporarystorage.TemporaryStorageManager;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+@SuppressWarnings("UseSpecificCatch")
+public class ProjectSymbolTable extends AbstractSymbolTable {
+
+    public static final String AREA_NAME = "AREA";        
+    public static final String PERIMETER_NAME = "PERIMETER";
+    public static final String FIRSTLAYERFEATURE_NAME = "FirstLayerFeature";
+        
+    static final String NAME = "Project";
+    
+    private abstract class CachedValue<T> {
+
+        T value = null;
+        long lastAccess = 0;
+
+        protected abstract void reload();
+
+        public boolean isExpired() {
+            long now = System.currentTimeMillis();
+            return now - lastAccess > 3000;
+        }
+
+        public T get() {
+            if (isExpired()) {
+                reload();
+            }
+            lastAccess = System.currentTimeMillis();
+            return value;
+        }
+    }
+
+    private class ProjectValue extends CachedValue<Project> {
+
+        @Override
+        protected void reload() {
+            value = ProjectManager.getInstance().getCurrentProject();
+        }
+
+    }
+
+    private class CurrentViewValue extends CachedValue<ViewDocument> {
+
+        @Override
+        protected void reload() {
+            ApplicationManager application = ApplicationLocator.getManager();
+            ViewDocument viewdoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
+            value = viewdoc;
+        }
+
+    }
+
+    private class CurrentViewEnvelopeValue extends CachedValue<Geometry> {
+
+        @Override
+        protected void reload() {
+            ApplicationManager application = ApplicationLocator.getManager();
+            ViewDocument viewdoc = (ViewDocument) application.getActiveDocument(ViewManager.TYPENAME);
+            if( viewdoc == null ) {
+                value = null;
+                return;
+            }
+            value = viewdoc.getMapContext().getViewPort().getEnvelope().getGeometry();
+        }
+
+    }
+
+    private class PropertiesValue extends CachedValue<Map<File, Properties>> {
+
+        @Override
+        protected void reload() {
+            value = new HashMap<>();
+        }
+    }
+
+    private class CurrentProjectFunction extends AbstractFunction {
+
+        public CurrentProjectFunction() {
+            super(
+                    "Project",
+                    "project",
+                    Range.is(0),
+                    "Access to the current project loaded in gvSIG desktop.\n",
+                    "project()",
+                    null,
+                    "Project"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            return currentProject.get();
+        }
+
+    }
+
+    private class FirstSelectedFeatureFunction extends AbstractFunction {
+
+        public FirstSelectedFeatureFunction() {
+            super(
+                    "Project",
+                    "firstSelectedFeature",
+                    Range.between(3, 4),
+                    "Access to the first selected feature of the layer, and "
+                    + "return the value of the attribute.",
+                    "firstSelectedFeature({{view}}, layer, attribute, defaulValue)",
+                    new String[]{
+                        "view - String value with the name of a view",
+                        "layer - String value with the name of a layer in the indicated view",
+                        "attribute - String value with the name of the attribute in the indicated layer",
+                        "defaultValue - Optional. Value to use if the indicated "
+                        + "attribute can not be accessed. For example, if the "
+                        + "view or layer does not exist, or it does not have "
+                        + "selected elements."
+                    },
+                    "Object"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            Object defaultValue = null;
+            String viewName = getStr(args, 0);
+            String layerName = getStr(args, 1);
+            String attrName = getStr(args, 2);
+            if (args.length == 4) {
+                defaultValue = getObject(args, 3);
+            }
+            try {
+                Project project = currentProject.get();
+                ViewDocument view = (ViewDocument) project.getDocument(viewName, ViewManager.TYPENAME);
+                if (view == null) {
+                    return defaultValue;
+                }
+                FLayer layer = view.getLayer(layerName);
+                if (!(layer instanceof FLyrVect)) {
+                    return defaultValue;
+                }
+                FeatureSelection selection = ((FLyrVect) layer).getFeatureStore().getFeatureSelection();
+                if (selection == null || selection.isEmpty()) {
+                    return defaultValue;
+                }
+                Feature feature = selection.first();
+                if (feature == null) {
+                    return defaultValue;
+                }
+                return feature.get(attrName);
+            } catch (Exception ex) {
+                return defaultValue;
+            }
+        }
+
+    }
+
+    private class FirstLayerFeatureFunction extends AbstractFunction {
+
+        public FirstLayerFeatureFunction() {
+            super(
+                    "Project",
+                    FIRSTLAYERFEATURE_NAME,
+                    Range.between(3, 6),
+                    "Access to the first feature of the layer, and "
+                    + "return the value of the attribute.",
+                    FIRSTLAYERFEATURE_NAME+"({{view}}, layer, attribute, filter, order, defaulValue)",
+                    new String[]{
+                        "view - String value with the name of a view",
+                        "layer - String value with the name of a layer in the indicated view",
+                        "attribute - String value with the name of the attribute in the indicated layer",
+                        "filter - Optional. String value with a filter expression",
+                        "order - Optional. String value with the order. must be a string with the names of separate fields with commas",
+                        "defaultValue - Optional. Value to use if the indicated "
+                        + "attribute can not be accessed. For example, if the "
+                        + "view or layer does not exist."
+                    },
+                    "Object"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            Object defaultValue = null;
+            String filter = null;
+            String order = null;
+            String viewName = getStr(args, 0);
+            String layerName = getStr(args, 1);
+            String attrName = getStr(args, 2);
+            switch (args.length) {
+                case 4:
+                    filter = getStr(args, 3);
+                    break;
+                case 5:
+                    filter = getStr(args, 3);
+                    order = getStr(args, 4);
+                    break;
+                case 6:
+                    filter = getStr(args, 3);
+                    order = getStr(args, 4);
+                    defaultValue = getObject(args, 6);
+                    break;
+            }
+            try {
+                Project project = currentProject.get();
+                ViewDocument view = (ViewDocument) project.getDocument(viewName, ViewManager.TYPENAME);
+                if (view == null) {
+                    return defaultValue;
+                }
+                FLayer layer = view.getLayer(layerName);
+                if (!(layer instanceof FLyrVect)) {
+                    return defaultValue;
+                }
+                FeatureStore store = ((FLyrVect) layer).getFeatureStore();
+                FeatureSet set;
+                if (filter == null && order == null) {
+                    set = store.getFeatureSet();
+                } else {
+                    FeatureQuery query = store.createFeatureQuery();
+                    if (filter != null) {
+                        query.addFilter(filter);
+                    }
+                    if (order != null) {
+                        query.getOrder().add(order);
+                    }
+                    query.retrievesAllAttributes();
+                    set = store.getFeatureSet(query);
+                }
+                Feature feature = set.first();
+                if (feature == null) {
+                    return defaultValue;
+                }
+                return feature.get(attrName);
+            } catch (Exception ex) {
+                return defaultValue;
+            }
+        }
+
+    }
+
+    private class ViewFunction extends AbstractFunction {
+
+        public ViewFunction() {
+            super(
+                    "Project",
+                    "view",
+                    Range.is(1),
+                    "Access to the indicated view",
+                    "view({{viewName}})",
+                    new String[]{
+                        "view - String value with the name of a view"
+                    },
+                    "DocumentView"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            String viewName = getStr(args, 0);
+            Project project = currentProject.get();
+            ViewDocument view = (ViewDocument) project.getDocument(viewName, ViewManager.TYPENAME);
+            return view;
+        }
+
+    }
+
+    private class ViewBBoxFunction extends AbstractFunction {
+
+        public ViewBBoxFunction() {
+            super(
+                    "Project",
+                    "viewbbox",
+                    Range.is(0),
+                    "Return the BBox of the active view.",
+                    "viewbbox()",
+                    null,
+                    "Geometry"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            return currentViewEnvelope.get();
+        }
+
+    }
+
+
+    private class SavedPointFunction extends AbstractFunction {
+
+        public SavedPointFunction() {
+            super(
+                    "Project",
+                    "savedpoint",
+                    Range.is(1),
+                    "Return the value of the saved point with the name indicated.\n"
+                            + "If the named point do not exists return null.",
+                    "savedpoint({{name}})",
+                    new String[]{
+                        "name - String value with the name of the point"
+                    },
+                    "Geometry"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager();
+            TemporaryStorageGroup storage = manager.create("Points",Point.class);
+            Geometry value = (Geometry) storage.get(getStr(args, 0));
+            return value;
+        }
+
+    }
+
+    private  class AreaFunction extends AbstractFunction {
+        
+        public AreaFunction() {
+            super(
+                    "Project",
+                    AREA_NAME,
+                    Range.between(2,3),
+                    "Calculate the area of the geometry in the indicated units",
+                    AREA_NAME+"({{geometry}}, 'm²')",
+                    new String[]{
+                        "geometry - Geometry",
+                        "Projection - Optional. Projection of the geometry or a string with the projection name",
+                        "units - String value with the name the units to use"
+                    },
+                    "Double"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            int units = 0;
+            IProjection proj = null;
+            Geometry geom = getGeom(args, 0);
+            switch( args.length ) {
+                case 2:
+                    units = getUnits(args, 1);
+                    break;
+                case 3:
+                    proj = getProjection(args, 1);
+                    units = getUnits(args, 2);
+                    break;
+            }
+            if (proj == null) {
+                proj = geom.getProjection();
+            }
+            AreaAndPerimeterCalculator calculator = new AreaAndPerimeterCalculator();
+            double area = calculator.area(geom, proj, units);
+            return area;
+        }
+    }
+
+    private class PerimeterFunction extends AbstractFunction {
+
+        public PerimeterFunction() {
+            super(
+                    "Project",
+                    PERIMETER_NAME,
+                    Range.between(2,3),
+                    "Calculate the perimeter of the geometry in the indicated units",
+                    PERIMETER_NAME+"({{geometry}}, 'm')",
+                    new String[]{
+                        "geometry - Geometry",
+                        "Projection - Optional. Projection of the geometry or a string with the projection name",
+                        "units - String value with the name the units to use"
+                    },
+                    "Double"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            int units = 0;
+            IProjection proj = null;
+            Geometry geom = getGeom(args, 0);
+            switch( args.length ) {
+                case 2:
+                    units = getUnits(args, 1);
+                    break;
+                case 3:
+                    proj = getProjection(args, 1);
+                    units = getUnits(args, 2);
+                    break;
+            }
+            if (proj == null) {
+                proj = geom.getProjection();
+            }
+            AreaAndPerimeterCalculator calculator = new AreaAndPerimeterCalculator();
+            double area = calculator.perimeter(geom, proj, units);
+            return area;
+        }
+    }
+
+    private class PropertyFunction extends AbstractFunction {
+
+        public PropertyFunction() {
+            super(
+                    "Project",
+                    "property",
+                    Range.between(2, 3),
+                    "Access to a property value in a properties file. If the"
+                    + "indicated filename is not absolute, access it relative"
+                    + "to the project.",
+                    "property({{filename}}, name, defaultValue)",
+                    new String[]{
+                        "filename - String value with the name of the properties file",
+                        "name - String value with the name of the property to retrieve from the file",
+                        "defaultValue - Optional. Default value if can't access the file or the property",},
+                    "String"
+            );
+        }
+
+        @Override
+        public Object call(Interpreter interpreter, Object[] args) throws Exception {
+            String filename = getStr(args, 0);
+            String name = getStr(args, 1);
+            String defaultValue = null;
+            if (args.length == 3) {
+                defaultValue = getStr(args, 2);
+            }
+
+            File file = new File(filename);
+            if (!file.isAbsolute()) {
+                Project project = currentProject.get();
+                if (project.getFile() == null) {
+                    return defaultValue;
+                }
+                file = new File(project.getFile().getParent(), filename);
+            }
+            Map<File, Properties> x = propertiesFiles.get();
+            Properties properties = x.get(file);
+            if (properties == null) {
+                properties = new Properties();
+                FileInputStream in = null;
+                try {
+                    in = new FileInputStream(file);
+                    properties.load(in);
+                } catch (Exception ex) {
+                    return defaultValue;
+                } finally {
+                    IOUtils.closeQuietly(in);
+                }
+                x.put(file, properties);
+            }
+            String value = properties.getProperty(name, defaultValue);
+            return value;
+        }
+
+    }
+
+    ProjectValue currentProject = new ProjectValue();
+    CurrentViewValue currentView = new CurrentViewValue();
+    CurrentViewEnvelopeValue currentViewEnvelope = new CurrentViewEnvelopeValue();
+    PropertiesValue propertiesFiles = new PropertiesValue();
+
+    @SuppressWarnings("OverridableMethodCallInConstructor")
+    public ProjectSymbolTable() {
+        super(NAME);
+        this.addFunction(new CurrentProjectFunction());
+        this.addFunction(new FirstSelectedFeatureFunction());
+        this.addFunction(new FirstLayerFeatureFunction());
+        this.addFunction(new ViewFunction());
+        this.addFunction(new ViewBBoxFunction());
+        this.addFunction(new PropertyFunction());
+        this.addFunction(new AreaFunction());
+        this.addFunction(new PerimeterFunction());
+        this.addFunction(new SavedPointFunction());
+    }
+
+    private MapContext getMapContext(Feature feature) {
+        FeatureStore store = feature.getStore();
+        Project project = ProjectManager.getInstance().getCurrentProject();
+        project.getDocuments(ViewManager.TYPENAME);
+        for (Document document : project.getDocuments(ViewManager.TYPENAME)) {
+            ViewDocument view = (ViewDocument) document;
+            MapContext mapContext = view.getMapContext();
+            FLayer layer = getLayer(mapContext, store);
+            if (layer != null) {
+                return mapContext;
+            }
+        }
+        return null;
+    }
+
+    private FLayer getLayer(MapContext mapContext, FeatureStore store) {
+        Iterator<FLayer> it = mapContext.deepiterator();
+        while (it.hasNext()) {
+            FLayer layer = it.next();
+            if (layer instanceof FLyrVect) {
+                FeatureStore layer_store = ((FLyrVect) layer).getFeatureStore();
+                if (layer_store == store) {
+                    return layer;
+                }
+            }
+        }
+        return null;
+    }
+
+    private IProjection getProjection(Object[] args, int i) {
+        Object value = args[i];
+        if (value == null) {
+            return null;
+        }
+        if (value instanceof IProjection) {
+            return (IProjection) value;
+        }
+        String code = value.toString();
+        return CRSFactory.getCRS(code);
+    }
+
+    private int getUnits(Object[] args, int i) {
+        Object value = args[i];
+        if (value == null) {
+            throw new IllegalArgumentException("Illegal unit value 'null'");
+        }
+        if (value instanceof Number) {
+            return ((Number) value).intValue();
+        }
+        String name = value.toString();
+        String[] names = MapContext.getAreaAbbr();
+        for (int j = 0; j < names.length; j++) {
+            if (name.equalsIgnoreCase(names[j])) {
+                return j;
+            }
+        }
+        names = MapContext.getAreaNames();
+        for (int j = 0; j < names.length; j++) {
+            if (name.equalsIgnoreCase(names[j])) {
+                return j;
+            }
+        }
+        throw new IllegalArgumentException("Illegal unit name '" + name + "'");
+    }
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelFactory.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelFactory.java	(revision 44129)
@@ -0,0 +1,35 @@
+package org.gvsig.app.project.symboltables.functionPanels.area;
+
+import org.gvsig.app.project.symboltables.functionPanels.perimeter.PerimeterAditionalPanelFactory;
+import org.gvsig.app.project.symboltables.functionPanels.perimeter.PerimeterAditionalPanel;
+import org.gvsig.app.project.symboltables.ProjectSymbolTable;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
+import org.gvsig.expressionevaluator.swing.FunctionAdditionalPanelFactory;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
+import org.gvsig.expressionevaluator.swing.spi.AbstractFunctionAdditionalPanelFactory;
+import org.gvsig.tools.swing.api.Component;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class AreaAditionalPanelFactory extends AbstractFunctionAdditionalPanelFactory {
+    
+    public AreaAditionalPanelFactory() {
+        super(ProjectSymbolTable.AREA_NAME);
+    }
+
+    @Override
+    public Component createAdditionalPanel(JExpressionBuilder expressionBuilder, Object... args) {
+        Component p = new AreaAditionalPanel(expressionBuilder);
+        return p;
+    }
+
+    public static void selfRegister() {
+        ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager();
+        FunctionAdditionalPanelFactory factory = new AreaAditionalPanelFactory();
+        manager.registerAdditionalPanel(factory);
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.xml	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.xml	(revision 44129)
@@ -0,0 +1,706 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</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.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.xml</at>
+   <at name="path">datos/devel/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.xml</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,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
+   <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <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">2</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name">lblTitle</at>
+            <at name="width">997</at>
+            <at name="text">_Area</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="font">
+             <object classname="com.jeta.forms.store.properties.FontProperty">
+              <at name="family">Dialog</at>
+              <at name="style">1</at>
+              <at name="size">11</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">8</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name">lblSelectUnits</at>
+            <at name="width">997</at>
+            <at name="text">_Select_units</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">10</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.JList</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JList</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="scrollableTracksViewportHeight">true</at>
+            <at name="scrollableTracksViewportWidth">true</at>
+            <at name="name">lstUnits</at>
+            <at name="width">995</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">20</at>
+              <at name="horizontalpolicy">30</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>
+            <at name="height">363</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name">lblSelectField</at>
+            <at name="width">997</at>
+            <at name="text">_Select_field</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">6</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.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</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="name">cboFields</at>
+            <at name="width">997</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <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">14</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.FormComponent</at>
+        </super>
+        <at name="id">embedded.2136574238</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">
+         <object classname="java.util.LinkedList">
+          <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">3</at>
+                <at name="row">1</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">_Insert_function</at>
+                 <at name="name">btnInsertFunction</at>
+                 <at name="width">122</at>
+                 <at name="text">_Insert_function</at>
+                 <at name="height">22</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+              </at>
+             </object>
+            </at>
+            <at name="name"/>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <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>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="1">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </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">12</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.JTextField</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JTextField</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="background" object="color">236,233,216</at>
+            <at name="editable">false</at>
+            <at name="name">txtPreview</at>
+            <at name="width">997</at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"/>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <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>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="15">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <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>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="10">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="11">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="12">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="13">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="14">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanelView.java	(revision 44129)
@@ -0,0 +1,187 @@
+package org.gvsig.app.project.symboltables.functionPanels.area;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+
+
+public class AreaAditionalPanelView extends JPanel
+{
+   JLabel lblTitle = new JLabel();
+   JLabel lblSelectUnits = new JLabel();
+   JList lstUnits = new JList();
+   JLabel lblSelectField = new JLabel();
+   JComboBox cboFields = new JComboBox();
+   JButton btnInsertFunction = new JButton();
+   JTextField txtPreview = new JTextField();
+
+   /**
+    * Default constructor
+    */
+   public AreaAditionalPanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblTitle.setFont(new Font("Dialog",Font.BOLD,11));
+      lblTitle.setName("lblTitle");
+      lblTitle.setText("_Area");
+      jpanel1.add(lblTitle,cc.xy(2,2));
+
+      lblSelectUnits.setName("lblSelectUnits");
+      lblSelectUnits.setText("_Select_units");
+      jpanel1.add(lblSelectUnits,cc.xy(2,8));
+
+      lstUnits.setName("lstUnits");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(lstUnits);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xy(2,10));
+
+      lblSelectField.setName("lblSelectField");
+      lblSelectField.setText("_Select_field");
+      jpanel1.add(lblSelectField,cc.xy(2,4));
+
+      cboFields.setName("cboFields");
+      jpanel1.add(cboFields,cc.xy(2,6));
+
+      jpanel1.add(createPanel1(),cc.xy(2,14));
+      txtPreview.setBackground(new Color(236,233,216));
+      txtPreview.setEditable(false);
+      txtPreview.setName("txtPreview");
+      jpanel1.add(txtPreview,cc.xy(2,12));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel1()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      btnInsertFunction.setActionCommand("_Insert_function");
+      btnInsertFunction.setName("btnInsertFunction");
+      btnInsertFunction.setText("_Insert_function");
+      jpanel1.add(btnInsertFunction,cc.xy(3,1));
+
+      addFillComponents(jpanel1,new int[]{ 1,2 },new int[]{ 1 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/area/AreaAditionalPanel.java	(revision 44129)
@@ -0,0 +1,160 @@
+package org.gvsig.app.project.symboltables.functionPanels.area;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.function.Predicate;
+import javax.swing.DefaultListModel;
+import javax.swing.JComponent;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import org.gvsig.app.project.symboltables.ProjectSymbolTable;
+import org.gvsig.expressionevaluator.swing.Element;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.swing.DALSwingLocator;
+import org.gvsig.fmap.dal.swing.DataSwingManager;
+import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement;
+import org.gvsig.fmap.dal.swing.featuretype.AttributeDescriptorPickerController;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.tools.swing.api.Component;
+import org.gvsig.tools.swing.api.ListElement;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class AreaAditionalPanel 
+        extends AreaAditionalPanelView 
+        implements Component
+    {
+
+    private final JExpressionBuilder expressionBuilder;
+    private AttributeDescriptorPickerController fieldPicker;
+    
+    public AreaAditionalPanel(JExpressionBuilder expressionBuilder) {
+        this.expressionBuilder = expressionBuilder;
+        this.initComponents();
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+    
+    private void initComponents() {
+        DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
+        
+        this.fieldPicker = dataSwingManager.createAttributeDescriptorPickerController(
+            this.cboFields, 
+            new Predicate<FeatureAttributeDescriptor>() {
+            @Override
+            public boolean test(FeatureAttributeDescriptor descriptor) {
+                if( descriptor.getDataType().getType()!=DataTypes.GEOMETRY ) {
+                    return false;
+                }
+                GeometryType geomtype = descriptor.getGeomType();
+                if( geomtype.getType()==Geometry.TYPES.GEOMETRY ) {
+                    return true;
+                }
+                boolean isSurface = geomtype.isTypeOf(Geometry.TYPES.SURFACE) ||
+                        geomtype.isTypeOf(Geometry.TYPES.MULTISURFACE);
+                return isSurface;
+            }
+        });
+        final FeatureStore store = this.getFeatureStore();
+        try {
+            this.fieldPicker.setFeatureType(store.getDefaultFeatureType());
+        } catch (DataException ex) {
+        }
+        
+        String[] abbrev = MapContext.getAreaAbbr();
+        String[] names = MapContext.getAreaNames();
+        List<ListElement<String>> elements = new ArrayList<>();
+        for (int j = 0; j < names.length; j++) {
+            elements.add(new ListElement<>(names[j]+" ("+abbrev[j]+")", abbrev[j]));
+        }
+        Collections.sort(elements, new Comparator<ListElement<String>>() {
+            @Override
+            public int compare(ListElement<String> o1, ListElement<String> o2) {
+                return o1.toString().compareTo(o2.toString());
+            }
+        });
+        
+        DefaultListModel unitsModel = new DefaultListModel();
+        for (ListElement<String> element : elements) {
+            unitsModel.addElement(element);
+        }
+        this.lstUnits.setModel(unitsModel);
+        if( lstUnits.getModel().getSize()>0 ) {
+            this.lstUnits.setSelectedIndex(0);
+        }
+        if( this.cboFields.getModel().getSize()>0 ) {
+            this.cboFields.setSelectedIndex(0);
+        }    
+        this.cboFields.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                doUpdatePreview();
+            }
+        });
+        this.lstUnits.addListSelectionListener(new ListSelectionListener() {
+            @Override
+            public void valueChanged(ListSelectionEvent e) {
+                if( e.getValueIsAdjusting() ) {
+                    return;
+                }
+                doUpdatePreview();
+            }
+        });
+        this.btnInsertFunction.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doInsertFunction();
+            }
+        });
+        doUpdatePreview();
+    }
+
+    private void doUpdatePreview() {
+        FeatureAttributeDescriptor descriptor = this.fieldPicker.get();
+        String fieldName;
+        if( descriptor == null ) {
+            fieldName = "{{geometry}}";
+        } else {
+            fieldName = descriptor.getName();
+        }
+        String unitName = (String) ListElement.getSelected(lstUnits);
+        String template = ProjectSymbolTable.AREA_NAME + "( "+fieldName+", '"+unitName+"' )";
+        this.txtPreview.setText(template);
+        this.txtPreview.setCaretPosition(0);
+        
+    }
+    
+    private void doInsertFunction() {
+        this.expressionBuilder.insertText(this.txtPreview.getText());
+    }
+    
+    private FeatureStore getFeatureStore() {
+        List<Element> elements = this.expressionBuilder.getElements();
+        for (Element element : elements) {
+            if( element instanceof FeatureStoreElement ) {
+                FeatureStore store = ((FeatureStoreElement) element).getFeatureStore();
+                if( store != null ) {
+                    return store;
+                }
+            }
+        }
+        return null;
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanel.java	(revision 44129)
@@ -0,0 +1,160 @@
+package org.gvsig.app.project.symboltables.functionPanels.perimeter;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.function.Predicate;
+import javax.swing.DefaultListModel;
+import javax.swing.JComponent;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import org.gvsig.app.project.symboltables.ProjectSymbolTable;
+import org.gvsig.expressionevaluator.swing.Element;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
+import org.gvsig.fmap.dal.DataTypes;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.swing.DALSwingLocator;
+import org.gvsig.fmap.dal.swing.DataSwingManager;
+import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement;
+import org.gvsig.fmap.dal.swing.featuretype.AttributeDescriptorPickerController;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.type.GeometryType;
+import org.gvsig.fmap.mapcontext.MapContext;
+import org.gvsig.tools.swing.api.Component;
+import org.gvsig.tools.swing.api.ListElement;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class PerimeterAditionalPanel 
+        extends PerimeterAditionalPanelView 
+        implements Component
+    {
+
+    private final JExpressionBuilder expressionBuilder;
+    private AttributeDescriptorPickerController fieldPicker;
+    
+    public PerimeterAditionalPanel(JExpressionBuilder expressionBuilder) {
+        this.expressionBuilder = expressionBuilder;
+        this.initComponents();
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+    
+    private void initComponents() {
+        DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
+        
+        this.fieldPicker = dataSwingManager.createAttributeDescriptorPickerController(
+            this.cboFields, 
+            new Predicate<FeatureAttributeDescriptor>() {
+            @Override
+            public boolean test(FeatureAttributeDescriptor descriptor) {
+                if( descriptor.getDataType().getType()!=DataTypes.GEOMETRY ) {
+                    return false;
+                }
+                GeometryType geomtype = descriptor.getGeomType();
+                if( geomtype.getType()==Geometry.TYPES.GEOMETRY ) {
+                    return true;
+                }
+                boolean isSurface = geomtype.isTypeOf(Geometry.TYPES.SURFACE) ||
+                        geomtype.isTypeOf(Geometry.TYPES.MULTISURFACE);
+                return isSurface;
+            }
+        });
+        final FeatureStore store = this.getFeatureStore();
+        try {
+            this.fieldPicker.setFeatureType(store.getDefaultFeatureType());
+        } catch (DataException ex) {
+        }
+        
+        String[] abbrev = MapContext.getDistanceAbbr();
+        String[] names = MapContext.getDistanceNames();
+        List<ListElement<String>> elements = new ArrayList<>();
+        for (int j = 0; j < names.length; j++) {
+            elements.add(new ListElement<>(names[j]+" ("+abbrev[j]+")", abbrev[j]));
+        }
+        Collections.sort(elements, new Comparator<ListElement<String>>() {
+            @Override
+            public int compare(ListElement<String> o1, ListElement<String> o2) {
+                return o1.toString().compareTo(o2.toString());
+            }
+        });
+        
+        DefaultListModel unitsModel = new DefaultListModel();
+        for (ListElement<String> element : elements) {
+            unitsModel.addElement(element);
+        }
+        this.lstUnits.setModel(unitsModel);
+        if( lstUnits.getModel().getSize()>0 ) {
+            this.lstUnits.setSelectedIndex(0);
+        }
+        if( this.cboFields.getModel().getSize()>0 ) {
+            this.cboFields.setSelectedIndex(0);
+        }    
+        this.cboFields.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                doUpdatePreview();
+            }
+        });
+        this.lstUnits.addListSelectionListener(new ListSelectionListener() {
+            @Override
+            public void valueChanged(ListSelectionEvent e) {
+                if( e.getValueIsAdjusting() ) {
+                    return;
+                }
+                doUpdatePreview();
+            }
+        });
+        this.btnInsertFunction.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doInsertFunction();
+            }
+        });
+        doUpdatePreview();
+    }
+
+    private void doUpdatePreview() {
+        FeatureAttributeDescriptor descriptor = this.fieldPicker.get();
+        String fieldName;
+        if( descriptor == null ) {
+            fieldName = "{{geometry}}";
+        } else {
+            fieldName = descriptor.getName();
+        }
+        String unitName = (String) ListElement.getSelected(lstUnits);
+        String template = ProjectSymbolTable.PERIMETER_NAME + "( "+fieldName+", '"+unitName+"' )";
+        this.txtPreview.setText(template);
+        this.txtPreview.setCaretPosition(0);
+        
+    }
+    
+    private void doInsertFunction() {
+        this.expressionBuilder.insertText(this.txtPreview.getText());
+    }
+    
+    private FeatureStore getFeatureStore() {
+        List<Element> elements = this.expressionBuilder.getElements();
+        for (Element element : elements) {
+            if( element instanceof FeatureStoreElement ) {
+                FeatureStore store = ((FeatureStoreElement) element).getFeatureStore();
+                if( store != null ) {
+                    return store;
+                }
+            }
+        }
+        return null;
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelFactory.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelFactory.java	(revision 44129)
@@ -0,0 +1,33 @@
+package org.gvsig.app.project.symboltables.functionPanels.perimeter;
+
+import org.gvsig.app.project.symboltables.ProjectSymbolTable;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
+import org.gvsig.expressionevaluator.swing.FunctionAdditionalPanelFactory;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
+import org.gvsig.expressionevaluator.swing.spi.AbstractFunctionAdditionalPanelFactory;
+import org.gvsig.tools.swing.api.Component;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class PerimeterAditionalPanelFactory extends AbstractFunctionAdditionalPanelFactory {
+    
+    public PerimeterAditionalPanelFactory() {
+        super(ProjectSymbolTable.PERIMETER_NAME);
+    }
+
+    @Override
+    public Component createAdditionalPanel(JExpressionBuilder expressionBuilder, Object... args) {
+        Component p = new PerimeterAditionalPanel(expressionBuilder);
+        return p;
+    }
+
+    public static void selfRegister() {
+        ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager();
+        FunctionAdditionalPanelFactory factory = new PerimeterAditionalPanelFactory();
+        manager.registerAdditionalPanel(factory);
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.xml	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.xml	(revision 44129)
@@ -0,0 +1,706 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</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.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.xml</at>
+   <at name="path">datos/devel/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.xml</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,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
+   <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <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">2</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name">lblTitle</at>
+            <at name="width">997</at>
+            <at name="text">_Perimeter</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="font">
+             <object classname="com.jeta.forms.store.properties.FontProperty">
+              <at name="family">Dialog</at>
+              <at name="style">1</at>
+              <at name="size">11</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">8</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name">lblSelectUnits</at>
+            <at name="width">997</at>
+            <at name="text">_Select_units</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">10</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.JList</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JList</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="scrollableTracksViewportHeight">true</at>
+            <at name="scrollableTracksViewportWidth">true</at>
+            <at name="name">lstUnits</at>
+            <at name="width">995</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">20</at>
+              <at name="horizontalpolicy">30</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>
+            <at name="height">363</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name">lblSelectField</at>
+            <at name="width">997</at>
+            <at name="text">_Select_field</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">6</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.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</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="name">cboFields</at>
+            <at name="width">997</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <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">14</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.FormComponent</at>
+        </super>
+        <at name="id">embedded.1986565366</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">
+         <object classname="java.util.LinkedList">
+          <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">3</at>
+                <at name="row">1</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">_Insert_function</at>
+                 <at name="name">btnInsertFunction</at>
+                 <at name="width">122</at>
+                 <at name="text">_Insert_function</at>
+                 <at name="height">22</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+              </at>
+             </object>
+            </at>
+            <at name="name"/>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <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>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="1">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </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">12</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.JTextField</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JTextField</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="background" object="color">236,233,216</at>
+            <at name="editable">false</at>
+            <at name="name">txtPreview</at>
+            <at name="width">997</at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"/>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <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>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="15">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <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>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="10">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="11">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="12">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="13">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+       <at name="item" index="14">
+        <object classname="[Ljava.lang.Object;" size="3"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/perimeter/PerimeterAditionalPanelView.java	(revision 44129)
@@ -0,0 +1,187 @@
+package org.gvsig.app.project.symboltables.functionPanels.perimeter;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+
+
+public class PerimeterAditionalPanelView extends JPanel
+{
+   JLabel lblTitle = new JLabel();
+   JLabel lblSelectUnits = new JLabel();
+   JList lstUnits = new JList();
+   JLabel lblSelectField = new JLabel();
+   JComboBox cboFields = new JComboBox();
+   JButton btnInsertFunction = new JButton();
+   JTextField txtPreview = new JTextField();
+
+   /**
+    * Default constructor
+    */
+   public PerimeterAditionalPanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblTitle.setFont(new Font("Dialog",Font.BOLD,11));
+      lblTitle.setName("lblTitle");
+      lblTitle.setText("_Perimeter");
+      jpanel1.add(lblTitle,cc.xy(2,2));
+
+      lblSelectUnits.setName("lblSelectUnits");
+      lblSelectUnits.setText("_Select_units");
+      jpanel1.add(lblSelectUnits,cc.xy(2,8));
+
+      lstUnits.setName("lstUnits");
+      JScrollPane jscrollpane1 = new JScrollPane();
+      jscrollpane1.setViewportView(lstUnits);
+      jscrollpane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+      jscrollpane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+      jpanel1.add(jscrollpane1,cc.xy(2,10));
+
+      lblSelectField.setName("lblSelectField");
+      lblSelectField.setText("_Select_field");
+      jpanel1.add(lblSelectField,cc.xy(2,4));
+
+      cboFields.setName("cboFields");
+      jpanel1.add(cboFields,cc.xy(2,6));
+
+      jpanel1.add(createPanel1(),cc.xy(2,14));
+      txtPreview.setBackground(new Color(236,233,216));
+      txtPreview.setEditable(false);
+      txtPreview.setName("txtPreview");
+      jpanel1.add(txtPreview,cc.xy(2,12));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel1()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      btnInsertFunction.setActionCommand("_Insert_function");
+      btnInsertFunction.setName("btnInsertFunction");
+      btnInsertFunction.setText("_Insert_function");
+      jpanel1.add(btnInsertFunction,cc.xy(3,1));
+
+      addFillComponents(jpanel1,new int[]{ 1,2 },new int[]{ 1 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelFactory.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelFactory.java	(revision 44129)
@@ -0,0 +1,33 @@
+package org.gvsig.app.project.symboltables.functionPanels.firstlayerfeature;
+
+import org.gvsig.app.project.symboltables.ProjectSymbolTable;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
+import org.gvsig.expressionevaluator.swing.FunctionAdditionalPanelFactory;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
+import org.gvsig.expressionevaluator.swing.spi.AbstractFunctionAdditionalPanelFactory;
+import org.gvsig.tools.swing.api.Component;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class FirstLayerFeatureAditionalPanelFactory extends AbstractFunctionAdditionalPanelFactory {
+    
+    public FirstLayerFeatureAditionalPanelFactory() {
+        super(ProjectSymbolTable.FIRSTLAYERFEATURE_NAME);
+    }
+
+    @Override
+    public Component createAdditionalPanel(JExpressionBuilder expressionBuilder, Object... args) {
+        Component p = new FirstLayerFeatureAditionalPanel(expressionBuilder);
+        return p;
+    }
+
+    public static void selfRegister() {
+        ExpressionEvaluatorSwingManager manager = ExpressionEvaluatorSwingLocator.getManager();
+        FunctionAdditionalPanelFactory factory = new FirstLayerFeatureAditionalPanelFactory();
+        manager.registerAdditionalPanel(factory);
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.xml	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.xml	(revision 44129)
@@ -0,0 +1,1236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</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.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.xml</at>
+   <at name="path">datos/devel/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.xml</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,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU: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">
+    <object classname="java.util.LinkedList">
+     <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">2</at>
+           <at name="colspan">3</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name"></at>
+            <at name="width">997</at>
+            <at name="text">FistLayerFeature</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="font">
+             <object classname="com.jeta.forms.store.properties.FontProperty">
+              <at name="family">Dialog</at>
+              <at name="style">1</at>
+              <at name="size">11</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</at>
+           <at name="row">4</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.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</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="name">cboViews</at>
+            <at name="width">947</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name"></at>
+            <at name="width">39</at>
+            <at name="text">_View</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">6</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name"></at>
+            <at name="width">39</at>
+            <at name="text">_Layer</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</at>
+           <at name="row">6</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.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</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="name">cboLayers</at>
+            <at name="width">947</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">8</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name"></at>
+            <at name="width">39</at>
+            <at name="text">_Field</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</at>
+           <at name="row">8</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.JComboBox</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JComboBox</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="name">cboFields</at>
+            <at name="width">947</at>
+            <at name="items">
+             <object classname="com.jeta.forms.store.properties.ItemsProperty">
+              <at name="name">items</at>
+             </object>
+            </at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">10</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name"></at>
+            <at name="width">39</at>
+            <at name="text">_Filter</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">14</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">12</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">com.jeta.forms.components.label.JETALabel</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.components.label.JETALabel</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="name"></at>
+            <at name="width">39</at>
+            <at name="text">_Order</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="height">47</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</at>
+           <at name="row">14</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.JTextField</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JTextField</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="background" object="color">236,233,216</at>
+            <at name="editable">false</at>
+            <at name="name">txtPreview</at>
+            <at name="width">947</at>
+            <at name="height">20</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </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">4</at>
+           <at name="row">16</at>
+           <at name="colspan">1</at>
+           <at name="rowspan">1</at>
+           <at name="halign">right</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">_Insert_function</at>
+            <at name="name">btnInsertFunction</at>
+            <at name="width">122</at>
+            <at name="text">_Insert_function</at>
+            <at name="height">22</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">4</at>
+           <at name="row">10</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.FormComponent</at>
+        </super>
+        <at name="id">embedded.577571197</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">
+         <object classname="java.util.LinkedList">
+          <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">1</at>
+                <at name="row">1</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.JTextField</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JTextField</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="name">txtFilter</at>
+                 <at name="width">919</at>
+                 <at name="height">20</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </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">3</at>
+                <at name="row">1</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.EmptyBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                         <at name="title"></at>
+                        </super>
+                        <at name="top">2</at>
+                        <at name="left">2</at>
+                        <at name="bottom">2</at>
+                        <at name="right">2</at>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">btnFilter</at>
+                 <at name="width">12</at>
+                 <at name="height">12</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+              </at>
+             </object>
+            </at>
+            <at name="name"></at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <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>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="1">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">4</at>
+           <at name="row">12</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.FormComponent</at>
+        </super>
+        <at name="id">embedded.W6da2c294B16900d14d7fXR7fef</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">
+         <object classname="java.util.LinkedList">
+          <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">1</at>
+                <at name="row">1</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.JTextField</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JTextField</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="name">txtOrder</at>
+                 <at name="width">915</at>
+                 <at name="enabled">false</at>
+                 <at name="height">20</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </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">3</at>
+                <at name="row">1</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.EmptyBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                         <at name="title"></at>
+                        </super>
+                        <at name="top">2</at>
+                        <at name="left">2</at>
+                        <at name="bottom">2</at>
+                        <at name="right">2</at>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="actionCommand">...</at>
+                 <at name="name"></at>
+                 <at name="width">16</at>
+                 <at name="text">...</at>
+                 <at name="enabled">false</at>
+                 <at name="height">18</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+              </at>
+             </object>
+            </at>
+            <at name="name">btnOrder</at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">21</at>
+              <at name="horizontalpolicy">31</at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="1">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</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"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"></at>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <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>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="17">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="4">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="5">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="10">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="11">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="12">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="13">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="14">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="15">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="16">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanelView.java	(revision 44129)
@@ -0,0 +1,231 @@
+package org.gvsig.app.project.symboltables.functionPanels.firstlayerfeature;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import javax.swing.Box;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.border.EmptyBorder;
+
+
+public class FirstLayerFeatureAditionalPanelView extends JPanel
+{
+   JComboBox cboViews = new JComboBox();
+   JComboBox cboLayers = new JComboBox();
+   JComboBox cboFields = new JComboBox();
+   JTextField txtPreview = new JTextField();
+   JButton btnInsertFunction = new JButton();
+   JTextField txtFilter = new JTextField();
+   JButton btnFilter = new JButton();
+   JPanel btnOrder = new JPanel();
+   JTextField txtOrder = new JTextField();
+   JButton jbutton1 = new JButton();
+
+   /**
+    * Default constructor
+    */
+   public FirstLayerFeatureAditionalPanelView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      JLabel jlabel1 = new JLabel();
+      jlabel1.setFont(new Font("Tahoma",Font.BOLD,11));
+      jlabel1.setText("FistLayerFeature");
+      jpanel1.add(jlabel1,cc.xywh(2,2,3,1));
+
+      cboViews.setName("cboViews");
+      jpanel1.add(cboViews,cc.xy(4,4));
+
+      JLabel jlabel2 = new JLabel();
+      jlabel2.setText("_View");
+      jpanel1.add(jlabel2,cc.xy(2,4));
+
+      JLabel jlabel3 = new JLabel();
+      jlabel3.setText("_Layer");
+      jpanel1.add(jlabel3,cc.xy(2,6));
+
+      cboLayers.setName("cboLayers");
+      jpanel1.add(cboLayers,cc.xy(4,6));
+
+      JLabel jlabel4 = new JLabel();
+      jlabel4.setText("_Field");
+      jpanel1.add(jlabel4,cc.xy(2,8));
+
+      cboFields.setName("cboFields");
+      jpanel1.add(cboFields,cc.xy(4,8));
+
+      JLabel jlabel5 = new JLabel();
+      jlabel5.setText("_Filter");
+      jpanel1.add(jlabel5,cc.xy(2,10));
+
+      JLabel jlabel6 = new JLabel();
+      jlabel6.setText("_Order");
+      jpanel1.add(jlabel6,cc.xy(2,12));
+
+      txtPreview.setBackground(new Color(236,233,216));
+      txtPreview.setEditable(false);
+      txtPreview.setName("txtPreview");
+      jpanel1.add(txtPreview,cc.xy(4,14));
+
+      btnInsertFunction.setActionCommand("_Insert_function");
+      btnInsertFunction.setName("btnInsertFunction");
+      btnInsertFunction.setText("_Insert_function");
+      jpanel1.add(btnInsertFunction,new CellConstraints(4,16,1,1,CellConstraints.RIGHT,CellConstraints.DEFAULT));
+
+      jpanel1.add(createPanel1(),cc.xy(4,10));
+      jpanel1.add(createbtnOrder(),cc.xy(4,12));
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel1()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      txtFilter.setName("txtFilter");
+      jpanel1.add(txtFilter,cc.xy(1,1));
+
+      btnFilter.setName("btnFilter");
+      EmptyBorder emptyborder1 = new EmptyBorder(2,2,2,2);
+      btnFilter.setBorder(emptyborder1);
+      jpanel1.add(btnFilter,cc.xy(3,1));
+
+      addFillComponents(jpanel1,new int[]{ 2 },new int[0]);
+      return jpanel1;
+   }
+
+   public JPanel createbtnOrder()
+   {
+      btnOrder.setName("btnOrder");
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      btnOrder.setLayout(formlayout1);
+
+      txtOrder.setEnabled(false);
+      txtOrder.setName("txtOrder");
+      btnOrder.add(txtOrder,cc.xy(1,1));
+
+      jbutton1.setActionCommand("...");
+      jbutton1.setEnabled(false);
+      jbutton1.setText("...");
+      EmptyBorder emptyborder1 = new EmptyBorder(2,2,2,2);
+      jbutton1.setBorder(emptyborder1);
+      btnOrder.add(jbutton1,cc.xy(3,1));
+
+      addFillComponents(btnOrder,new int[]{ 2 },new int[0]);
+      return btnOrder;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanel.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/functionPanels/firstlayerfeature/FirstLayerFeatureAditionalPanel.java	(revision 44129)
@@ -0,0 +1,239 @@
+package org.gvsig.app.project.symboltables.functionPanels.firstlayerfeature;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComponent;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.project.Project;
+import org.gvsig.app.project.documents.Document;
+import org.gvsig.app.project.documents.view.ViewDocument;
+import org.gvsig.app.project.documents.view.ViewManager;
+import org.gvsig.app.project.symboltables.ProjectSymbolTable;
+import org.gvsig.expressionevaluator.Expression;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
+import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
+import org.gvsig.expressionevaluator.swing.ExpressionPickerController;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
+import org.gvsig.fmap.dal.DALLocator;
+import org.gvsig.fmap.dal.DataManager;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.expressionevaluator.FeatureSymbolTable;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.swing.DALSwingLocator;
+import org.gvsig.fmap.dal.swing.DataSwingManager;
+import org.gvsig.fmap.dal.swing.expressionevaluator.FeatureStoreElement;
+import org.gvsig.fmap.dal.swing.featuretype.AttributeDescriptorPickerController;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontrol.LayersTreeModel;
+import org.gvsig.tools.swing.api.Component;
+import org.gvsig.tools.swing.api.ListElement;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.ToolsSwingManager;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class FirstLayerFeatureAditionalPanel 
+        extends FirstLayerFeatureAditionalPanelView 
+        implements Component
+    {
+
+    private final JExpressionBuilder expressionBuilder;
+    private AttributeDescriptorPickerController fieldPicker;
+    private AttributeDescriptorPickerController pickerFields;
+    private ExpressionPickerController picketFilter;
+    private FeatureSymbolTable featureSymbolTable;
+    private FeatureStoreElement storeElement;
+    
+    public FirstLayerFeatureAditionalPanel(JExpressionBuilder expressionBuilder) {
+        this.expressionBuilder = expressionBuilder;
+        this.initComponents();
+    }
+
+    @Override
+    public JComponent asJComponent() {
+        return this;
+    }
+    
+    private void initComponents() {
+        DataManager dataManager = DALLocator.getDataManager();
+        DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
+        ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
+        ApplicationManager application = ApplicationLocator.getManager();
+        
+        toolsSwingManager.setDefaultPopupMenu(this.txtPreview);
+        
+        Project project = application.getCurrentProject();
+        List<Document> views = project.getDocuments(ViewManager.TYPENAME);
+        List<ListElement<Document>> views2 = new ArrayList<>();
+        for (Document view : views) {
+            views2.add(new ListElement<>(view.getName(),view));
+        }
+        Collections.sort(views2, new Comparator<ListElement<Document>>() {
+            @Override
+            public int compare(ListElement<Document> o1, ListElement<Document> o2) {
+                return StringUtils.compare(o1.toString(), o2.toString());
+            }
+        });
+        DefaultComboBoxModel model = new DefaultComboBoxModel();
+        for (ListElement<Document> element : views2) {
+            model.addElement(element);
+        }
+        this.cboViews.setModel(model);
+        this.cboViews.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                doChangeView();
+            }
+        });
+    
+        this.cboLayers.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                doChangeLayer();
+            }
+        });
+    
+        this.pickerFields = DALSwingLocator.getSwingManager().createAttributeDescriptorPickerController(
+                this.cboFields
+        );
+        this.pickerFields.addChangeListener(new ChangeListener() {
+            @Override
+            public void stateChanged(ChangeEvent e) {
+                doChangeField();
+            }
+        });
+    
+        this.picketFilter = ExpressionEvaluatorSwingLocator.getManager().createExpressionPickerController(
+                this.txtFilter, 
+                this.btnFilter
+        );
+        this.cboViews.setSelectedIndex(0);
+        doChangeView();
+        
+        this.btnInsertFunction.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doInsertFunction();
+            }
+        });
+
+
+        this.featureSymbolTable = dataManager.createFeatureSymbolTable();
+        this.storeElement = dataSwingManager.createFeatureStoreElement(this.picketFilter);
+        this.picketFilter.addElement(this.storeElement);
+    }
+
+    private void doChangeView() {
+        ViewDocument viewdoc = (ViewDocument) ListElement.getSelected(this.cboViews);
+        if( viewdoc == null ) {
+            this.cboLayers.setEnabled(false);
+            this.pickerFields.setEnabled(false);
+            return;
+        }
+        ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
+        LayersTreeModel layerTreeModel = new LayersTreeModel(viewdoc.getMapContext().getLayers());
+        toolsSwingManager.setTreeModel(this.cboLayers, layerTreeModel);
+        this.cboLayers.setEnabled(true);
+        this.cboLayers.setSelectedIndex(0);
+        this.doChangeLayer();
+    }
+    
+    private void doChangeLayer() {
+        FLayer layer = (FLayer) ListElement.getSelected(this.cboLayers);
+        if( layer == null ) {
+            this.pickerFields.setEnabled(false);
+            return;
+        }
+        if( !(layer instanceof FLyrVect) ) {
+            this.pickerFields.setEnabled(false);
+            return;
+        }
+        FeatureStore store = ((FLyrVect)layer).getFeatureStore();
+        try {
+            this.pickerFields.setFeatureType(store.getDefaultFeatureType());
+            this.pickerFields.setEnabled(true);
+        } catch (DataException ex) {
+            //TODO:
+        }
+        Feature sampleFeature = null;
+        try {
+            sampleFeature = store.getFeatureSelection().first();
+            if( sampleFeature == null ) {
+                sampleFeature = store.first();
+            }
+        } catch (DataException ex) {
+        }      
+        if( sampleFeature!=null ) {
+            this.featureSymbolTable.setFeature(sampleFeature);
+            this.picketFilter.setPreviewSymbolTable(this.featureSymbolTable.createParent());
+        }
+        this.storeElement.setFeatureStore(store);
+    }
+    
+    private void doChangeField() {
+        FeatureAttributeDescriptor descriptor = this.pickerFields.get();
+        if( descriptor == null ) {
+            this.txtPreview.setText("");
+            return;
+        }
+        doUpdatePreview();
+    }
+    
+    private void doUpdatePreview() {
+        ViewDocument viewdoc = (ViewDocument) ListElement.getSelected(this.cboViews);
+        if( viewdoc == null ) {
+            this.txtPreview.setText("");
+            return;
+        }
+        FLayer layer = (FLayer) ListElement.getSelected(this.cboLayers);
+        if( layer == null ) {
+            this.txtPreview.setText("");
+            return;
+        }
+        FeatureAttributeDescriptor descriptor = this.pickerFields.get();
+        if( descriptor == null ) {
+            this.txtPreview.setText("");
+            return;
+        }
+        Expression filter = this.picketFilter.get();
+        StringBuilder template = new StringBuilder();
+        template.append(ProjectSymbolTable.FIRSTLAYERFEATURE_NAME);
+        template.append("( '");
+        template.append(viewdoc.getName());
+        template.append("', '");
+        template.append(layer.getName());
+        template.append("', '");
+        template.append(descriptor.getName());
+        template.append("'");
+        if( !filter.isPhraseEmpty() ) {
+            template.append(", '");
+            template.append(StringEscapeUtils.escapeSql(filter.getPhrase()));            
+            template.append("'");
+        }
+        template.append(" )");
+        this.txtPreview.setText(template.toString());
+        this.txtPreview.setCaretPosition(0);
+    }
+    
+    private void doInsertFunction() {
+        this.expressionBuilder.insertText(this.txtPreview.getText());
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTableFactory.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTableFactory.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTableFactory.java	(revision 44129)
@@ -0,0 +1,33 @@
+package org.gvsig.app.project.symboltables;
+
+import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
+import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
+import org.gvsig.expressionevaluator.SymbolTable;
+import org.gvsig.expressionevaluator.spi.AbstractSymbolTableFactory;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class ProjectSymbolTableFactory extends AbstractSymbolTableFactory {
+
+    private SymbolTable symbolTable;
+    
+    public ProjectSymbolTableFactory() {
+        super(ProjectSymbolTable.NAME, true);
+    }
+    
+    @Override
+    public SymbolTable createSymbolTable(Object... args) {
+        if( this.symbolTable==null ) {
+            this.symbolTable = new ProjectSymbolTable();
+        }
+        return this.symbolTable;
+    }
+
+    public static void selfRegister() {
+        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
+        manager.registerSymbolTable(new ProjectSymbolTableFactory());
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/SavedPointsElement.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/SavedPointsElement.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/SavedPointsElement.java	(revision 44129)
@@ -32,7 +32,7 @@
         private final Object value;
 
         public PointEntryElement(Object value, String name) {
-            super(name, null, "expressionbuilder-element-constant");
+            super(name, "expressionbuilder-element-constant");
             this.value = value;
         }
 
@@ -45,7 +45,7 @@
     private final List<Element> childs;
 
     public SavedPointsElement() {
-        super(ToolsLocator.getI18nManager().getTranslation("Saved points"), null, "view-query-coordinate-capture");
+        super(ToolsLocator.getI18nManager().getTranslation("Saved points"), "view-query-coordinate-capture");
 
         ExpressionEvaluatorSwingManager evManager = ExpressionEvaluatorSwingLocator.getManager();
         TemporaryStorageManager manager = TemporaryStorageLocator.getTemporaryStorageManager();
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewCaptureRectangleElement.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewCaptureRectangleElement.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewCaptureRectangleElement.java	(revision 44129)
@@ -6,6 +6,7 @@
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
 import org.gvsig.expressionevaluator.swing.Element.CalculatedElement;
 import org.gvsig.expressionevaluator.swing.Element.SimpleElement;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
 import org.gvsig.expressionevaluator.swing.spi.AbstractElement;
 import org.gvsig.fmap.geom.Geometry;
 import org.gvsig.tools.ToolsLocator;
@@ -25,7 +26,6 @@
     public ViewCaptureRectangleElement() {
         super(
                 ToolsLocator.getI18nManager().getTranslation("_Capture_rectangle"), 
-                "Capture a rectangle in the current view",
                 "expressionbuilder-element-view-capture-bbox"
         );
     }
@@ -71,7 +71,7 @@
     }
 
     @Override
-    public Component getAditionalPanel() {
+    public Component getAditionalPanel(JExpressionBuilder expressionBuilder) {
         if (aditionalPanel == null) {
             this.aditionalPanel = new ViewCaptureRectanglePanel();
         }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewTakeProjectionCodeElement.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewTakeProjectionCodeElement.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewTakeProjectionCodeElement.java	(revision 44129)
@@ -22,7 +22,6 @@
     public ViewTakeProjectionCodeElement() {
         super(
                 ToolsLocator.getI18nManager().getTranslation("_Take_projection_code"), 
-                "Take the projection code of the current view", 
                 "expressionbuilder-element-view-projection-code"
         );
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewCapturePointElement.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewCapturePointElement.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewCapturePointElement.java	(revision 44129)
@@ -8,6 +8,7 @@
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
 import org.gvsig.expressionevaluator.swing.Element.CalculatedElement;
 import org.gvsig.expressionevaluator.swing.Element.SimpleElement;
+import org.gvsig.expressionevaluator.swing.JExpressionBuilder;
 import org.gvsig.expressionevaluator.swing.spi.AbstractElement;
 import org.gvsig.fmap.geom.Geometry;
 import org.gvsig.tools.ToolsLocator;
@@ -27,7 +28,6 @@
     public ViewCapturePointElement() {
         super(
                 ToolsLocator.getI18nManager().getTranslation("_Capture_point"),
-                "Capture a point in the current view",
                 "expressionbuilder-element-view-capture-point"
         );
     }
@@ -73,7 +73,7 @@
     }
 
     @Override
-    public Component getAditionalPanel() {
+    public Component getAditionalPanel(JExpressionBuilder expressionBuilder) {
         if (aditionalPanel == null) {
             this.aditionalPanel = new ViewCapturePointPanel();
         }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewElement.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewElement.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/expressionevaluator/ViewElement.java	(revision 44129)
@@ -21,7 +21,7 @@
     private final List<Element> childs;
     
     public ViewElement() {
-        super(ToolsLocator.getI18nManager().getTranslation("View"), null, "expressionbuilder-element-view");
+        super(ToolsLocator.getI18nManager().getTranslation("View"), "expressionbuilder-element-view");
         this.childs = new ArrayList<>();
         this.childs.add(new ViewCaptureRectangleElement());
         this.childs.add(new ViewCapturePointElement());
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/ApplicationLibrary.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/ApplicationLibrary.java	(revision 44128)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/ApplicationLibrary.java	(revision 44129)
@@ -34,9 +34,12 @@
 import org.gvsig.app.extension.InitializeApplicationExtension;
 import org.gvsig.app.gui.preferencespage.AppSymbolPreferences;
 import org.gvsig.app.project.DefaultProject;
-import org.gvsig.app.project.ProjectSymbolTable;
 import org.gvsig.app.project.documents.view.expressionevaluator.SavedPointsElementFactory;
 import org.gvsig.app.project.documents.view.expressionevaluator.ViewElementFactory;
+import org.gvsig.app.project.symboltables.ProjectSymbolTableFactory;
+import org.gvsig.app.project.symboltables.functionPanels.area.AreaAditionalPanelFactory;
+import org.gvsig.app.project.symboltables.functionPanels.firstlayerfeature.FirstLayerFeatureAditionalPanelFactory;
+import org.gvsig.app.project.symboltables.functionPanels.perimeter.PerimeterAditionalPanelFactory;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLibrary;
 import org.gvsig.fmap.mapcontext.MapContextLibrary;
 import org.gvsig.fmap.mapcontext.MapContextLocator;
@@ -92,7 +95,11 @@
 		MapContextLocator.getSymbolManager().setSymbolPreferences(new AppSymbolPreferences());
 		
 		installBaseSymbols();
-                ProjectSymbolTable.selfRegister();
+
+                ProjectSymbolTableFactory.selfRegister();
+                AreaAditionalPanelFactory.selfRegister();
+                PerimeterAditionalPanelFactory.selfRegister();
+                FirstLayerFeatureAditionalPanelFactory.selfRegister();
                 ViewElementFactory.selfRegister();
                 SavedPointsElementFactory.selfRegister();
         }
