Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/actions/ShowFormAction.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/actions/ShowFormAction.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/actions/ShowFormAction.java	(revision 44267)
@@ -1,6 +1,7 @@
 package org.gvsig.fmap.dal.swing.impl.searchpanel.actions;
 
 import java.awt.event.ActionEvent;
+import java.net.URL;
 import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.event.ListSelectionEvent;
@@ -12,11 +13,13 @@
 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.impl.searchpanel.DefaultSearchPanel;
 import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
 import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.i18n.I18nManager;
 import org.gvsig.tools.swing.api.ToolsSwingLocator;
 import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.swing.icontheme.IconTheme;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,6 +44,19 @@
             return new ShowFormAction(panel);
         }
         
+//        public static void selfRegister() {
+//            DataSwingManager dalSwingManager = DALSwingLocator.getSwingManager();
+//            dalSwingManager.registerFeatureStoreSearchAction(new ShowFormActionFactory());
+//            String[][] iconNames = new String[][]{
+//                new String[]{"dalswing", "search-action-showform"}
+//            };
+//            IconTheme theme = ToolsSwingLocator.getIconThemeManager().getCurrent();
+//            for (String[] icon : iconNames) {
+//                URL url = ShowFormAction.class.getResource(icon[1] + ".png");
+//                theme.registerDefault("DALSwing", icon[0], icon[1], null, url);
+//            }
+//        }
+        
     }
 
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.xml
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.xml	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.xml	(revision 44267)
@@ -114,7 +114,7 @@
                       </at>
                       <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                      </super>
-                     <at name="id">embedded.887413730</at>
+                     <at name="id">embedded.1002811823</at>
                      <at name="rowspecs">CENTER:2DLU:NONE,CENTER: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:12DLU:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
                      <at name="components">
@@ -1436,9 +1436,9 @@
                       </at>
                       <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
                      </super>
-                     <at name="id">embedded.1362533989</at>
+                     <at name="id">embedded.203971818</at>
                      <at name="rowspecs">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,FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
+                     <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
                      <at name="components">
                       <object classname="java.util.LinkedList">
                        <item >
@@ -1486,7 +1486,7 @@
                                </object>
                               </at>
                               <at name="name">txtAdvancedExpression</at>
-                              <at name="width">857</at>
+                              <at name="width">811</at>
                               <at name="height">20</at>
                              </object>
                             </at>
@@ -1540,7 +1540,7 @@
                                </object>
                               </at>
                               <at name="name">lblExpressionDeBusqueda</at>
-                              <at name="width">857</at>
+                              <at name="width">811</at>
                               <at name="text">Introduzca una expresion de busqueda</at>
                               <at name="fill">
                                <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
@@ -1614,6 +1614,124 @@
                          </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">6</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.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>
+                                     </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">btnAdvancedExpressionHistory</at>
+                              <at name="width">12</at>
+                              <at name="height">12</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">8</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.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>
+                                     </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">btnAdvancedExpressionBookmarks</at>
+                              <at name="width">12</at>
+                              <at name="height">12</at>
+                             </object>
+                            </at>
+                           </object>
+                          </at>
+                         </object>
+                        </at>
+                       </item>
                       </object>
                      </at>
                      <at name="properties">
@@ -1673,19 +1791,19 @@
                        <at name="rows">
                         <object classname="[Ljava.lang.Object;" size="5">
                          <at name="item" index="0">
-                          <object classname="[Ljava.lang.Object;" size="5"/>
+                          <object classname="[Ljava.lang.Object;" size="9"/>
                          </at>
                          <at name="item" index="1">
-                          <object classname="[Ljava.lang.Object;" size="5"/>
+                          <object classname="[Ljava.lang.Object;" size="9"/>
                          </at>
                          <at name="item" index="2">
-                          <object classname="[Ljava.lang.Object;" size="5"/>
+                          <object classname="[Ljava.lang.Object;" size="9"/>
                          </at>
                          <at name="item" index="3">
-                          <object classname="[Ljava.lang.Object;" size="5"/>
+                          <object classname="[Ljava.lang.Object;" size="9"/>
                          </at>
                          <at name="item" index="4">
-                          <object classname="[Ljava.lang.Object;" size="5"/>
+                          <object classname="[Ljava.lang.Object;" size="9"/>
                          </at>
                         </object>
                        </at>
@@ -1741,7 +1859,7 @@
          </at>
          <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
         </super>
-        <at name="id">embedded.1752909883</at>
+        <at name="id">embedded.659464780</at>
         <at name="rowspecs">CENTER:DEFAULT:NONE</at>
         <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
         <at name="components">
@@ -2038,7 +2156,7 @@
          </at>
          <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
         </super>
-        <at name="id">embedded.2093766982</at>
+        <at name="id">embedded.2059256114</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">
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.java	(revision 44267)
@@ -46,6 +46,8 @@
    JTextField txtAdvancedExpression = new JTextField();
    JLabel lblExpressionDeBusqueda = new JLabel();
    JButton btnAdvancedExpression = new JButton();
+   JButton btnAdvancedExpressionHistory = new JButton();
+   JButton btnAdvancedExpressionBookmarks = new JButton();
    JButton btnSearch = new JButton();
    JButton btnClear = new JButton();
    JTable tblResults = new JTable();
@@ -268,7 +270,7 @@
    public JPanel createPanel2()
    {
       JPanel jpanel1 = new JPanel();
-      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE","CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE");
+      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE","CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE");
       CellConstraints cc = new CellConstraints();
       jpanel1.setLayout(formlayout1);
 
@@ -285,7 +287,19 @@
       btnAdvancedExpression.setBorder(emptyborder1);
       jpanel1.add(btnAdvancedExpression,cc.xy(4,4));
 
-      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5 });
+      btnAdvancedExpressionHistory.setActionCommand("...");
+      btnAdvancedExpressionHistory.setName("btnAdvancedExpressionHistory");
+      EmptyBorder emptyborder2 = new EmptyBorder(2,2,2,2);
+      btnAdvancedExpressionHistory.setBorder(emptyborder2);
+      jpanel1.add(btnAdvancedExpressionHistory,cc.xy(6,4));
+
+      btnAdvancedExpressionBookmarks.setActionCommand("...");
+      btnAdvancedExpressionBookmarks.setName("btnAdvancedExpressionBookmarks");
+      EmptyBorder emptyborder3 = new EmptyBorder(2,2,2,2);
+      btnAdvancedExpressionBookmarks.setBorder(emptyborder3);
+      jpanel1.add(btnAdvancedExpressionBookmarks,cc.xy(8,4));
+
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9 },new int[]{ 1,2,3,4,5 });
       return jpanel1;
    }
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanel.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanel.java	(revision 44267)
@@ -8,9 +8,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import javax.swing.Action;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
@@ -37,10 +35,6 @@
 import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.feature.FeatureType;
 import org.gvsig.fmap.dal.swing.DALSwingLocator;
-import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.SelectionAddAction;
-import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.SelectionFilterAction;
-import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.SelectionSetAction;
-import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.ShowFormAction;
 import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
 import org.gvsig.tools.ToolsLocator;
 import org.gvsig.tools.swing.api.ActionListenerSupport;
@@ -160,7 +154,7 @@
     private final ActionListenerSupport acctionListeners;
     private final List<SearchFieldController> searchFields;
     private ExpressionPickerController advancedExpression;
-    private List<Action> actions;
+    private final List<Action> actions;
 
     public DefaultSearchPanel(FeatureStore store) {
         this.store = store;
@@ -279,7 +273,12 @@
         }
 
         ExpressionEvaluatorSwingManager expressionSwingManager = ExpressionEvaluatorSwingLocator.getManager();
-        this.advancedExpression = expressionSwingManager.createExpressionPickerController(txtAdvancedExpression, btnAdvancedExpression);
+        this.advancedExpression = expressionSwingManager.createExpressionPickerController(
+                txtAdvancedExpression, 
+                btnAdvancedExpression,
+                btnAdvancedExpressionHistory,
+                btnAdvancedExpressionBookmarks
+        );
 
         this.btnSearch.addActionListener(new ActionListener() {
             @Override
@@ -441,6 +440,7 @@
         }
     }
 
+    @Override
     public FeatureStore getStore() {
         return store;
     }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionPickerController.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionPickerController.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionPickerController.java	(revision 44267)
@@ -5,6 +5,7 @@
 import java.net.URL;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JMenuItem;
@@ -62,8 +63,15 @@
     private final JMenuItem menuItem;
     private final AbstractAutomaticExpressionChecker automaticExpressionChecker;
     private boolean returnNullWhenEmptyExpression;
+    private final HistoryController historyController;
+    private final BookmarksController bookmarksController;
     
-    public DefaultExpressionPickerController(ExpressionEvaluatorSwingManager manager, JTextComponent text, JButton button) {
+    public DefaultExpressionPickerController(ExpressionEvaluatorSwingManager manager, 
+            JTextComponent text, 
+            JButton button,
+            JButton btnHistory,
+            JButton btnBookmarks
+        ) {
         ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager();
         I18nManager i18n = ToolsLocator.getI18nManager();
 
@@ -89,6 +97,27 @@
         this.menuItem.addActionListener(buttonAction);
         popupMenu.add(this.menuItem);
         
+        this.historyController = new HistoryController(btnHistory) {
+            @Override
+            public void updateExpression(Expression expression) {
+                set(expression);
+            }
+        };
+        popupMenu.add(this.historyController.createMenu());
+
+        this.bookmarksController = new BookmarksController(btnBookmarks) {
+            @Override
+            public void updateExpression(Expression expression) {
+                set(expression);
+            }
+
+            @Override
+            public Expression getExpressionWithOutHistory() {
+                return get();
+            }
+        };
+        popupMenu.add(this.bookmarksController.createMenu());
+
         this.automaticExpressionChecker = new AbstractAutomaticExpressionChecker(config, text) {
             @Override
             protected Expression getExpression() {
@@ -236,4 +265,19 @@
     public void setPreviewSymbolTable(SymbolTable symbolTable) {
         this.config.setPreviewSymbolTable(symbolTable);
     }
+
+    @Override
+    public Object getProperty(String name) {
+        return this.config.getProperty(name);
+    }
+
+    @Override
+    public void setProperty(String name, Object value) {
+        this.config.setProperty(name, value);
+    }
+
+    @Override
+    public Map<String, Object> getProperties() {
+        return this.config.getProperties();
+    }
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionPicker.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionPicker.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionPicker.java	(revision 44267)
@@ -3,6 +3,7 @@
 import java.awt.BorderLayout;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 import javax.swing.JButton;
 import javax.swing.JComponent;
 import javax.swing.JPanel;
@@ -37,7 +38,7 @@
     private void initComponents() {
         JButton button = new JButton();
         JTextField text = new JTextField();
-        this.controller = new DefaultExpressionPickerController(manager, text, button);
+        this.controller = new DefaultExpressionPickerController(manager, text, button, null, null);
         this.setLayout(new BorderLayout(2, 2));
         this.add(text, BorderLayout.CENTER);
         this.add(button, BorderLayout.LINE_END);
@@ -118,4 +119,19 @@
         this.controller.setPreviewSymbolTable(symbolTable);
     }
 
+    @Override
+    public Object getProperty(String name) {
+        return this.controller.getProperty(name);
+    }
+
+    @Override
+    public void setProperty(String name, Object value) {
+        this.controller.setProperty(name, value);
+    }
+
+    @Override
+    public Map<String, Object> getProperties() {
+        return this.controller.getProperties();
+    }
+
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionBuilder.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionBuilder.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultJExpressionBuilder.java	(revision 44267)
@@ -2,7 +2,6 @@
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
-import java.awt.Point;
 import java.awt.Toolkit;
 import java.awt.datatransfer.Clipboard;
 import java.awt.datatransfer.StringSelection;
@@ -19,6 +18,7 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
 import java.util.Objects;
 import javax.swing.DefaultListCellRenderer;
 import javax.swing.ImageIcon;
@@ -48,12 +48,9 @@
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.gvsig.expressionevaluator.Bookmark;
-import org.gvsig.expressionevaluator.Bookmarks;
 import org.gvsig.expressionevaluator.Expression;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
 import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
-import org.gvsig.expressionevaluator.History;
 import org.gvsig.expressionevaluator.SymbolTable;
 import org.gvsig.expressionevaluator.swing.Element;
 import org.gvsig.expressionevaluator.swing.Element.GroupElement;
@@ -70,9 +67,6 @@
 import org.gvsig.tools.swing.api.pickercontroller.PickerController;
 import org.gvsig.tools.swing.api.script.ScriptSwingManager;
 import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
-import org.gvsig.tools.swing.api.windowmanager.Dialog;
-import org.gvsig.tools.swing.api.windowmanager.WindowManager;
-import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
 import org.gvsig.tools.swing.icontheme.IconTheme;
 
 /**
@@ -95,7 +89,9 @@
     private ImageIcon defaultIconElement;
     private InfoPanel infoPanel;
     private AbstractAutomaticExpressionChecker automaticExpressionChecker;
-    
+    private HistoryController historyController;
+    private BookmarksController bookmarksController;
+
     private static class InfoPanel implements Component {
 
         private final JEditorPane txtDescription;
@@ -382,7 +378,6 @@
         this.lblMsg.setComponentPopupMenu(msgMenu);
 
         this.pnlDescription.setLayout(new BorderLayout());
-//        this.pnlDescription.setBackground(this.txtDescription.getBackground());
         this.txtExpression.addCaretListener(new CaretListener() {
             @Override
             public void caretUpdate(CaretEvent e) {
@@ -396,16 +391,6 @@
                 JLabel component = (JLabel) super.getTreeCellRendererComponent(tree,value, selected, expanded, leaf, row, hasFocus);
                 JLabel text = component;
                 JLabel icon = component;
-
-//                JPanel component = new JPanel();
-//                JLabel text = new JLabel();
-//                JLabel icon = new JLabel();
-//                component.setLayout(new FlowLayout());
-//                component.add(icon);
-//                component.add(text);
-//                component.setLayout(new GridBagLayout());
-//                component.add(icon, new GridBagConstraints(0,0,0,0,0,0,GridBagConstraints.NORTH,GridBagConstraints.BOTH,new Insets(1,1,1,1),1,1));
-//                component.add(text, new GridBagConstraints(1,0,0,0,0,0,GridBagConstraints.NORTH,GridBagConstraints.BOTH,new Insets(1,1,1,1),1,1));
                 
                 if( value instanceof Element ) {
                     Element element = (Element) value;
@@ -628,19 +613,24 @@
     
         this.tabExpressionBuilder.setEnabledAt(0, this.builderConfig.getPreferences().getScriptsEnabled());
         
-        this.btnHistory.addActionListener(new ActionListener() {
+        this.historyController = new HistoryController(btnHistory) {
             @Override
-            public void actionPerformed(ActionEvent e) {
-                doHistory();
+            public void updateExpression(Expression expression) {
+                setExpression(expression);
             }
-        });
+        };
         
-        this.btnBookmarks.addActionListener(new ActionListener() {
+        this.bookmarksController = new BookmarksController(btnBookmarks) {
             @Override
-            public void actionPerformed(ActionEvent e) {
-                doBookmarks();
+            public void updateExpression(Expression expression) {
+                setExpression(expression);
             }
-        });
+
+            @Override
+            public Expression getExpressionWithOutHistory() {
+                    return DefaultJExpressionBuilder.this.getExpressionWithOutHistory();
+            }
+        };
         
         
         this.infoPanel.repaint();
@@ -935,126 +925,19 @@
             }
         }
     }
-    
-    private void doHistory() {
-        I18nManager i18n = ToolsLocator.getI18nManager();
-        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
-        JPopupMenu popup = new JPopupMenu();
-        History history = theManager.getHistory();
-        if( !history.isEmpty() ) {
-            for (Expression expression : history) {
-                popup.add(createHistoryMenuItem(expression));
-            }
-            popup.addSeparator();
-        }
-        JMenuItem showAllHistory = new JMenuItem(i18n.getTranslation("_Show_all_history"));
-        showAllHistory.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                doShowHistoryDialog();
-            }
-        });
-        popup.add(showAllHistory);
-        Point p = this.btnHistory.getLocationOnScreen();
-        popup.show(this.btnHistory, 0, this.btnHistory.getHeight());
+
+    @Override
+    public Object getProperty(String name) {
+        return this.builderConfig.getProperty(name);
     }
-    
-    private JMenuItem createHistoryMenuItem(final Expression expression) {
-        JMenuItem item = new JMenuItem(StringUtils.abbreviate(expression.getPhrase(), 45));
-        item.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                setExpression(expression);
-            }
-        });
-        return item;
+
+    @Override
+    public void setProperty(String name, Object value) {
+        this.builderConfig.setProperty(name, value);
     }
-    
-    private void doShowHistoryDialog() {
-        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
-        final DefaultHistoryPanel panel = new DefaultHistoryPanel();
-        final Dialog dialog = winManager.createDialog(
-                panel,
-                "History",
-                null, 
-                WindowManager_v2.BUTTONS_OK_CANCEL
-        );
-        dialog.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
-                    return;
-                }
-                setExpression(panel.getExpression());
-            }
-        });
-        dialog.show(WindowManager.MODE.DIALOG);
-    }
 
-    private void doBookmarks() {
-        I18nManager i18n = ToolsLocator.getI18nManager();
-        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
-        JPopupMenu popup = new JPopupMenu();
-        JMenuItem addToBookmarks = new JMenuItem(i18n.getTranslation("_Add_to_bookmarks"));
-        addToBookmarks.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                doShowBookmarksDialog(getExpressionWithOutHistory());
-            }
-        });
-        popup.add(addToBookmarks);
-        Bookmarks bookmarks = theManager.getBookmarks();
-        if( !bookmarks.isEmpty() ) {
-            popup.addSeparator();
-            for (Bookmark bookmark : bookmarks) {
-                popup.add(createBookmarkMenuItem(bookmark));
-            }
-            popup.addSeparator();
-            JMenuItem showAllBookmarks = new JMenuItem(i18n.getTranslation("_Show_all_bookmarks"));
-            showAllBookmarks.addActionListener(new ActionListener() {
-                @Override
-                public void actionPerformed(ActionEvent e) {
-                    doShowBookmarksDialog(null);
-                }
-            });
-            popup.add(showAllBookmarks);
-        }
-        Point p = this.btnBookmarks.getLocationOnScreen();
-        popup.show(this.btnBookmarks, 0, this.btnBookmarks.getHeight());
+    @Override
+    public Map<String, Object> getProperties() {
+        return this.builderConfig.getProperties();
     }
-    
-    private JMenuItem createBookmarkMenuItem(final Bookmark bookmark) {
-        JMenuItem item = new JMenuItem(StringUtils.abbreviate(bookmark.getName(), 45));
-        item.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                setExpression(bookmark.getValue());
-            }
-        });
-        return item;
-    }
-    
-    private void doShowBookmarksDialog(Expression expression) {
-        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
-        final DefaultBookmarksPanel panel = new DefaultBookmarksPanel(expression);
-        final Dialog dialog = winManager.createDialog(
-                panel,
-                "Bookmarks",
-                null, 
-                WindowManager_v2.BUTTONS_OK_CANCEL
-        );
-        dialog.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
-                    return;
-                }
-                Bookmark bookmark = panel.getCurrentBookmark();
-                if( bookmark!=null ) {
-                    setExpression(bookmark.getValue());
-                }
-            }
-        });
-        dialog.show(WindowManager.MODE.DIALOG);
-    }
 }
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionEvaluatorSwingManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionEvaluatorSwingManager.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionEvaluatorSwingManager.java	(revision 44267)
@@ -20,7 +20,6 @@
 import org.gvsig.expressionevaluator.swing.Element.FunctionElement;
 import org.gvsig.expressionevaluator.swing.Element.GroupElement;
 import org.gvsig.expressionevaluator.swing.ElementFactory;
-import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig;
 import org.gvsig.expressionevaluator.swing.ExpressionPickerController;
 import org.gvsig.expressionevaluator.swing.FunctionAdditionalPanelFactory;
 import org.gvsig.expressionevaluator.swing.JExpressionPicker;
@@ -170,13 +169,13 @@
 
     @Override
     public ExpressionPickerController createExpressionPickerController(JTextComponent text, JButton button) {
-        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button);
+        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button, null, null);
         return c;
     }
 
     @Override
     public ExpressionPickerController createExpressionPickerController(JTextComponent text, JButton button, JButton bookmarks, JButton history) {
-        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button);
+        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button, bookmarks, history);
         return c;
     }
     
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/BookmarksController.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/BookmarksController.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/BookmarksController.java	(revision 44267)
@@ -0,0 +1,122 @@
+package org.gvsig.expressionevaluator.swing.impl;
+
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.expressionevaluator.Bookmark;
+import org.gvsig.expressionevaluator.Bookmarks;
+import org.gvsig.expressionevaluator.Expression;
+import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
+import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.Dialog;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
+import org.gvsig.tools.swing.icontheme.IconTheme;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public abstract class BookmarksController {
+
+    private final JButton btnBookmarks;
+    
+    
+    public BookmarksController(JButton btnBookmarks) {
+        this.btnBookmarks = btnBookmarks;
+        if( this.btnBookmarks!=null ) {
+            IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
+            this.btnBookmarks.setIcon(iconTheme.get("expressionbuilder-bookmarks"));
+            this.btnBookmarks.addActionListener(new ActionListener() {
+                @Override
+                public void actionPerformed(ActionEvent e) {
+                    doBookmarks();
+                }
+            });
+        }
+    }
+    
+    public abstract Expression getExpressionWithOutHistory();
+    
+    public abstract void updateExpression(Expression expression);
+    
+    private void doBookmarks() {
+        JPopupMenu popup = this.createMenu().getPopupMenu();
+        Point p = this.btnBookmarks.getLocationOnScreen();
+        popup.show(this.btnBookmarks, 0, this.btnBookmarks.getHeight());
+    }
+    
+    public JMenu createMenu() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
+        JMenu menu = new JMenu(i18n.getTranslation("_Bookmarks"));
+        JMenuItem addToBookmarks = new JMenuItem(i18n.getTranslation("_Add_to_bookmarks"));
+        addToBookmarks.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doShowBookmarksDialog(getExpressionWithOutHistory());
+            }
+        });
+        menu.add(addToBookmarks);
+        Bookmarks bookmarks = theManager.getBookmarks();
+        if( !bookmarks.isEmpty() ) {
+            menu.addSeparator();
+            for (Bookmark bookmark : bookmarks) {
+                menu.add(createBookmarkMenuItem(bookmark));
+            }
+            menu.addSeparator();
+            JMenuItem showAllBookmarks = new JMenuItem(i18n.getTranslation("_Show_all_bookmarks"));
+            showAllBookmarks.addActionListener(new ActionListener() {
+                @Override
+                public void actionPerformed(ActionEvent e) {
+                    doShowBookmarksDialog(null);
+                }
+            });
+            menu.add(showAllBookmarks);
+        }
+        return menu;
+    }
+    
+    private JMenuItem createBookmarkMenuItem(final Bookmark bookmark) {
+        JMenuItem item = new JMenuItem(StringUtils.abbreviate(bookmark.getName(), 45));
+        item.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                updateExpression(bookmark.getValue());
+            }
+        });
+        return item;
+    }
+    
+    private void doShowBookmarksDialog(Expression expression) {
+        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
+        final DefaultBookmarksPanel panel = new DefaultBookmarksPanel(expression);
+        final Dialog dialog = winManager.createDialog(
+                panel,
+                "Bookmarks",
+                null, 
+                WindowManager_v2.BUTTONS_OK_CANCEL
+        );
+        dialog.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
+                    return;
+                }
+                Bookmark bookmark = panel.getCurrentBookmark();
+                if( bookmark!=null ) {
+                    updateExpression(bookmark.getValue());
+                }
+            }
+        });
+        dialog.show(WindowManager.MODE.DIALOG);
+    }
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/HistoryController.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/HistoryController.java	(revision 0)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/HistoryController.java	(revision 44267)
@@ -0,0 +1,108 @@
+package org.gvsig.expressionevaluator.swing.impl;
+
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JButton;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.expressionevaluator.Expression;
+import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
+import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
+import org.gvsig.expressionevaluator.History;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.Dialog;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
+import org.gvsig.tools.swing.icontheme.IconTheme;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public abstract class HistoryController {
+
+    private final JButton button;
+
+    public HistoryController(JButton button) {
+        this.button = button;
+        if( this.button!=null ) {
+            IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
+            this.button.setIcon(iconTheme.get("expressionbuilder-history"));
+            this.button.addActionListener(new ActionListener() {
+                @Override
+                public void actionPerformed(ActionEvent e) {
+                    doHistory();
+                }
+            });
+        }
+        
+    }
+    
+    public abstract void updateExpression(Expression expression);
+    
+    private void doHistory() {
+        JPopupMenu popup = createMenu().getPopupMenu();
+        Point p = this.button.getLocationOnScreen();
+        popup.show(this.button, 0, this.button.getHeight());
+    }
+    
+    public JMenu createMenu() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
+        JMenu menu = new JMenu(i18n.getTranslation("_History"));
+        History history = theManager.getHistory();
+        if( !history.isEmpty() ) {
+            for (Expression expression : history) {
+                menu.add(createHistoryMenuItem(expression));
+            }
+            menu.addSeparator();
+        }
+        JMenuItem showAllHistory = new JMenuItem(i18n.getTranslation("_Show_all_history"));
+        showAllHistory.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doShowHistoryDialog();
+            }
+        });
+        menu.add(showAllHistory);
+        return menu;
+    }
+    
+    private JMenuItem createHistoryMenuItem(final Expression expression) {
+        JMenuItem item = new JMenuItem(StringUtils.abbreviate(expression.getPhrase(), 45));
+        item.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                updateExpression(expression);
+            }
+        });
+        return item;
+    }
+    
+    private void doShowHistoryDialog() {
+        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
+        final DefaultHistoryPanel panel = new DefaultHistoryPanel();
+        final Dialog dialog = winManager.createDialog(
+                panel,
+                "History",
+                null, 
+                WindowManager_v2.BUTTONS_OK_CANCEL
+        );
+        dialog.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
+                    return;
+                }
+                updateExpression(panel.getExpression());
+            }
+        });
+        dialog.show(WindowManager.MODE.DIALOG);
+    }
+    
+}
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.api/src/main/java/org/gvsig/expressionevaluator/swing/ExpressionBuilderConfig.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.api/src/main/java/org/gvsig/expressionevaluator/swing/ExpressionBuilderConfig.java	(revision 44266)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.api/src/main/java/org/gvsig/expressionevaluator/swing/ExpressionBuilderConfig.java	(revision 44267)
@@ -9,9 +9,9 @@
  *
  * @author jjdelcerro
  */
-public interface ExpressionBuilderConfig  {
+public interface ExpressionBuilderConfig extends PropertiesSupport {
 
-    public interface Preferences extends PropertiesSupport {
+    public interface Preferences {
         /**
          * Time in secons to use when obtains the list of elements.
          * 
