Revision 44267

View differences:

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
3 3
import java.awt.BorderLayout;
4 4
import java.util.Collection;
5 5
import java.util.List;
6
import java.util.Map;
6 7
import javax.swing.JButton;
7 8
import javax.swing.JComponent;
8 9
import javax.swing.JPanel;
......
37 38
    private void initComponents() {
38 39
        JButton button = new JButton();
39 40
        JTextField text = new JTextField();
40
        this.controller = new DefaultExpressionPickerController(manager, text, button);
41
        this.controller = new DefaultExpressionPickerController(manager, text, button, null, null);
41 42
        this.setLayout(new BorderLayout(2, 2));
42 43
        this.add(text, BorderLayout.CENTER);
43 44
        this.add(button, BorderLayout.LINE_END);
......
118 119
        this.controller.setPreviewSymbolTable(symbolTable);
119 120
    }
120 121

  
122
    @Override
123
    public Object getProperty(String name) {
124
        return this.controller.getProperty(name);
125
    }
126

  
127
    @Override
128
    public void setProperty(String name, Object value) {
129
        this.controller.setProperty(name, value);
130
    }
131

  
132
    @Override
133
    public Map<String, Object> getProperties() {
134
        return this.controller.getProperties();
135
    }
136

  
121 137
}
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
2 2

  
3 3
import java.awt.BorderLayout;
4 4
import java.awt.Dimension;
5
import java.awt.Point;
6 5
import java.awt.Toolkit;
7 6
import java.awt.datatransfer.Clipboard;
8 7
import java.awt.datatransfer.StringSelection;
......
19 18
import java.util.HashSet;
20 19
import java.util.List;
21 20
import java.util.Locale;
21
import java.util.Map;
22 22
import java.util.Objects;
23 23
import javax.swing.DefaultListCellRenderer;
24 24
import javax.swing.ImageIcon;
......
48 48
import org.apache.commons.io.FilenameUtils;
49 49
import org.apache.commons.io.IOUtils;
50 50
import org.apache.commons.lang3.StringUtils;
51
import org.gvsig.expressionevaluator.Bookmark;
52
import org.gvsig.expressionevaluator.Bookmarks;
53 51
import org.gvsig.expressionevaluator.Expression;
54 52
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
55 53
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
56
import org.gvsig.expressionevaluator.History;
57 54
import org.gvsig.expressionevaluator.SymbolTable;
58 55
import org.gvsig.expressionevaluator.swing.Element;
59 56
import org.gvsig.expressionevaluator.swing.Element.GroupElement;
......
70 67
import org.gvsig.tools.swing.api.pickercontroller.PickerController;
71 68
import org.gvsig.tools.swing.api.script.ScriptSwingManager;
72 69
import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
73
import org.gvsig.tools.swing.api.windowmanager.Dialog;
74
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
75
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
76 70
import org.gvsig.tools.swing.icontheme.IconTheme;
77 71

  
78 72
/**
......
95 89
    private ImageIcon defaultIconElement;
96 90
    private InfoPanel infoPanel;
97 91
    private AbstractAutomaticExpressionChecker automaticExpressionChecker;
98
    
92
    private HistoryController historyController;
93
    private BookmarksController bookmarksController;
94

  
99 95
    private static class InfoPanel implements Component {
100 96

  
101 97
        private final JEditorPane txtDescription;
......
382 378
        this.lblMsg.setComponentPopupMenu(msgMenu);
383 379

  
384 380
        this.pnlDescription.setLayout(new BorderLayout());
385
//        this.pnlDescription.setBackground(this.txtDescription.getBackground());
386 381
        this.txtExpression.addCaretListener(new CaretListener() {
387 382
            @Override
388 383
            public void caretUpdate(CaretEvent e) {
......
396 391
                JLabel component = (JLabel) super.getTreeCellRendererComponent(tree,value, selected, expanded, leaf, row, hasFocus);
397 392
                JLabel text = component;
398 393
                JLabel icon = component;
399

  
400
//                JPanel component = new JPanel();
401
//                JLabel text = new JLabel();
402
//                JLabel icon = new JLabel();
403
//                component.setLayout(new FlowLayout());
404
//                component.add(icon);
405
//                component.add(text);
406
//                component.setLayout(new GridBagLayout());
407
//                component.add(icon, new GridBagConstraints(0,0,0,0,0,0,GridBagConstraints.NORTH,GridBagConstraints.BOTH,new Insets(1,1,1,1),1,1));
408
//                component.add(text, new GridBagConstraints(1,0,0,0,0,0,GridBagConstraints.NORTH,GridBagConstraints.BOTH,new Insets(1,1,1,1),1,1));
409 394
                
410 395
                if( value instanceof Element ) {
411 396
                    Element element = (Element) value;
......
628 613
    
629 614
        this.tabExpressionBuilder.setEnabledAt(0, this.builderConfig.getPreferences().getScriptsEnabled());
630 615
        
631
        this.btnHistory.addActionListener(new ActionListener() {
616
        this.historyController = new HistoryController(btnHistory) {
632 617
            @Override
633
            public void actionPerformed(ActionEvent e) {
634
                doHistory();
618
            public void updateExpression(Expression expression) {
619
                setExpression(expression);
635 620
            }
636
        });
621
        };
637 622
        
638
        this.btnBookmarks.addActionListener(new ActionListener() {
623
        this.bookmarksController = new BookmarksController(btnBookmarks) {
639 624
            @Override
640
            public void actionPerformed(ActionEvent e) {
641
                doBookmarks();
625
            public void updateExpression(Expression expression) {
626
                setExpression(expression);
642 627
            }
643
        });
628

  
629
            @Override
630
            public Expression getExpressionWithOutHistory() {
631
                    return DefaultJExpressionBuilder.this.getExpressionWithOutHistory();
632
            }
633
        };
644 634
        
645 635
        
646 636
        this.infoPanel.repaint();
......
935 925
            }
936 926
        }
937 927
    }
938
    
939
    private void doHistory() {
940
        I18nManager i18n = ToolsLocator.getI18nManager();
941
        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
942
        JPopupMenu popup = new JPopupMenu();
943
        History history = theManager.getHistory();
944
        if( !history.isEmpty() ) {
945
            for (Expression expression : history) {
946
                popup.add(createHistoryMenuItem(expression));
947
            }
948
            popup.addSeparator();
949
        }
950
        JMenuItem showAllHistory = new JMenuItem(i18n.getTranslation("_Show_all_history"));
951
        showAllHistory.addActionListener(new ActionListener() {
952
            @Override
953
            public void actionPerformed(ActionEvent e) {
954
                doShowHistoryDialog();
955
            }
956
        });
957
        popup.add(showAllHistory);
958
        Point p = this.btnHistory.getLocationOnScreen();
959
        popup.show(this.btnHistory, 0, this.btnHistory.getHeight());
928

  
929
    @Override
930
    public Object getProperty(String name) {
931
        return this.builderConfig.getProperty(name);
960 932
    }
961
    
962
    private JMenuItem createHistoryMenuItem(final Expression expression) {
963
        JMenuItem item = new JMenuItem(StringUtils.abbreviate(expression.getPhrase(), 45));
964
        item.addActionListener(new ActionListener() {
965
            @Override
966
            public void actionPerformed(ActionEvent e) {
967
                setExpression(expression);
968
            }
969
        });
970
        return item;
933

  
934
    @Override
935
    public void setProperty(String name, Object value) {
936
        this.builderConfig.setProperty(name, value);
971 937
    }
972
    
973
    private void doShowHistoryDialog() {
974
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
975
        final DefaultHistoryPanel panel = new DefaultHistoryPanel();
976
        final Dialog dialog = winManager.createDialog(
977
                panel,
978
                "History",
979
                null, 
980
                WindowManager_v2.BUTTONS_OK_CANCEL
981
        );
982
        dialog.addActionListener(new ActionListener() {
983
            @Override
984
            public void actionPerformed(ActionEvent e) {
985
                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
986
                    return;
987
                }
988
                setExpression(panel.getExpression());
989
            }
990
        });
991
        dialog.show(WindowManager.MODE.DIALOG);
992
    }
993 938

  
994
    private void doBookmarks() {
995
        I18nManager i18n = ToolsLocator.getI18nManager();
996
        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
997
        JPopupMenu popup = new JPopupMenu();
998
        JMenuItem addToBookmarks = new JMenuItem(i18n.getTranslation("_Add_to_bookmarks"));
999
        addToBookmarks.addActionListener(new ActionListener() {
1000
            @Override
1001
            public void actionPerformed(ActionEvent e) {
1002
                doShowBookmarksDialog(getExpressionWithOutHistory());
1003
            }
1004
        });
1005
        popup.add(addToBookmarks);
1006
        Bookmarks bookmarks = theManager.getBookmarks();
1007
        if( !bookmarks.isEmpty() ) {
1008
            popup.addSeparator();
1009
            for (Bookmark bookmark : bookmarks) {
1010
                popup.add(createBookmarkMenuItem(bookmark));
1011
            }
1012
            popup.addSeparator();
1013
            JMenuItem showAllBookmarks = new JMenuItem(i18n.getTranslation("_Show_all_bookmarks"));
1014
            showAllBookmarks.addActionListener(new ActionListener() {
1015
                @Override
1016
                public void actionPerformed(ActionEvent e) {
1017
                    doShowBookmarksDialog(null);
1018
                }
1019
            });
1020
            popup.add(showAllBookmarks);
1021
        }
1022
        Point p = this.btnBookmarks.getLocationOnScreen();
1023
        popup.show(this.btnBookmarks, 0, this.btnBookmarks.getHeight());
939
    @Override
940
    public Map<String, Object> getProperties() {
941
        return this.builderConfig.getProperties();
1024 942
    }
1025
    
1026
    private JMenuItem createBookmarkMenuItem(final Bookmark bookmark) {
1027
        JMenuItem item = new JMenuItem(StringUtils.abbreviate(bookmark.getName(), 45));
1028
        item.addActionListener(new ActionListener() {
1029
            @Override
1030
            public void actionPerformed(ActionEvent e) {
1031
                setExpression(bookmark.getValue());
1032
            }
1033
        });
1034
        return item;
1035
    }
1036
    
1037
    private void doShowBookmarksDialog(Expression expression) {
1038
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
1039
        final DefaultBookmarksPanel panel = new DefaultBookmarksPanel(expression);
1040
        final Dialog dialog = winManager.createDialog(
1041
                panel,
1042
                "Bookmarks",
1043
                null, 
1044
                WindowManager_v2.BUTTONS_OK_CANCEL
1045
        );
1046
        dialog.addActionListener(new ActionListener() {
1047
            @Override
1048
            public void actionPerformed(ActionEvent e) {
1049
                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
1050
                    return;
1051
                }
1052
                Bookmark bookmark = panel.getCurrentBookmark();
1053
                if( bookmark!=null ) {
1054
                    setExpression(bookmark.getValue());
1055
                }
1056
            }
1057
        });
1058
        dialog.show(WindowManager.MODE.DIALOG);
1059
    }
1060 943
}
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
20 20
import org.gvsig.expressionevaluator.swing.Element.FunctionElement;
21 21
import org.gvsig.expressionevaluator.swing.Element.GroupElement;
22 22
import org.gvsig.expressionevaluator.swing.ElementFactory;
23
import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig;
24 23
import org.gvsig.expressionevaluator.swing.ExpressionPickerController;
25 24
import org.gvsig.expressionevaluator.swing.FunctionAdditionalPanelFactory;
26 25
import org.gvsig.expressionevaluator.swing.JExpressionPicker;
......
170 169

  
171 170
    @Override
172 171
    public ExpressionPickerController createExpressionPickerController(JTextComponent text, JButton button) {
173
        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button);
172
        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button, null, null);
174 173
        return c;
175 174
    }
176 175

  
177 176
    @Override
178 177
    public ExpressionPickerController createExpressionPickerController(JTextComponent text, JButton button, JButton bookmarks, JButton history) {
179
        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button);
178
        ExpressionPickerController c = new DefaultExpressionPickerController(this, text, button, bookmarks, history);
180 179
        return c;
181 180
    }
182 181
    
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
1
package org.gvsig.expressionevaluator.swing.impl;
2

  
3
import java.awt.Point;
4
import java.awt.event.ActionEvent;
5
import java.awt.event.ActionListener;
6
import javax.swing.JButton;
7
import javax.swing.JMenu;
8
import javax.swing.JMenuItem;
9
import javax.swing.JPopupMenu;
10
import org.apache.commons.lang3.StringUtils;
11
import org.gvsig.expressionevaluator.Bookmark;
12
import org.gvsig.expressionevaluator.Bookmarks;
13
import org.gvsig.expressionevaluator.Expression;
14
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
15
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
16
import org.gvsig.tools.ToolsLocator;
17
import org.gvsig.tools.i18n.I18nManager;
18
import org.gvsig.tools.swing.api.ToolsSwingLocator;
19
import org.gvsig.tools.swing.api.windowmanager.Dialog;
20
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
21
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
22
import org.gvsig.tools.swing.icontheme.IconTheme;
23

  
24
/**
25
 *
26
 * @author jjdelcerro
27
 */
28
public abstract class BookmarksController {
29

  
30
    private final JButton btnBookmarks;
31
    
32
    
33
    public BookmarksController(JButton btnBookmarks) {
34
        this.btnBookmarks = btnBookmarks;
35
        if( this.btnBookmarks!=null ) {
36
            IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
37
            this.btnBookmarks.setIcon(iconTheme.get("expressionbuilder-bookmarks"));
38
            this.btnBookmarks.addActionListener(new ActionListener() {
39
                @Override
40
                public void actionPerformed(ActionEvent e) {
41
                    doBookmarks();
42
                }
43
            });
44
        }
45
    }
46
    
47
    public abstract Expression getExpressionWithOutHistory();
48
    
49
    public abstract void updateExpression(Expression expression);
50
    
51
    private void doBookmarks() {
52
        JPopupMenu popup = this.createMenu().getPopupMenu();
53
        Point p = this.btnBookmarks.getLocationOnScreen();
54
        popup.show(this.btnBookmarks, 0, this.btnBookmarks.getHeight());
55
    }
56
    
57
    public JMenu createMenu() {
58
        I18nManager i18n = ToolsLocator.getI18nManager();
59
        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
60
        JMenu menu = new JMenu(i18n.getTranslation("_Bookmarks"));
61
        JMenuItem addToBookmarks = new JMenuItem(i18n.getTranslation("_Add_to_bookmarks"));
62
        addToBookmarks.addActionListener(new ActionListener() {
63
            @Override
64
            public void actionPerformed(ActionEvent e) {
65
                doShowBookmarksDialog(getExpressionWithOutHistory());
66
            }
67
        });
68
        menu.add(addToBookmarks);
69
        Bookmarks bookmarks = theManager.getBookmarks();
70
        if( !bookmarks.isEmpty() ) {
71
            menu.addSeparator();
72
            for (Bookmark bookmark : bookmarks) {
73
                menu.add(createBookmarkMenuItem(bookmark));
74
            }
75
            menu.addSeparator();
76
            JMenuItem showAllBookmarks = new JMenuItem(i18n.getTranslation("_Show_all_bookmarks"));
77
            showAllBookmarks.addActionListener(new ActionListener() {
78
                @Override
79
                public void actionPerformed(ActionEvent e) {
80
                    doShowBookmarksDialog(null);
81
                }
82
            });
83
            menu.add(showAllBookmarks);
84
        }
85
        return menu;
86
    }
87
    
88
    private JMenuItem createBookmarkMenuItem(final Bookmark bookmark) {
89
        JMenuItem item = new JMenuItem(StringUtils.abbreviate(bookmark.getName(), 45));
90
        item.addActionListener(new ActionListener() {
91
            @Override
92
            public void actionPerformed(ActionEvent e) {
93
                updateExpression(bookmark.getValue());
94
            }
95
        });
96
        return item;
97
    }
98
    
99
    private void doShowBookmarksDialog(Expression expression) {
100
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
101
        final DefaultBookmarksPanel panel = new DefaultBookmarksPanel(expression);
102
        final Dialog dialog = winManager.createDialog(
103
                panel,
104
                "Bookmarks",
105
                null, 
106
                WindowManager_v2.BUTTONS_OK_CANCEL
107
        );
108
        dialog.addActionListener(new ActionListener() {
109
            @Override
110
            public void actionPerformed(ActionEvent e) {
111
                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
112
                    return;
113
                }
114
                Bookmark bookmark = panel.getCurrentBookmark();
115
                if( bookmark!=null ) {
116
                    updateExpression(bookmark.getValue());
117
                }
118
            }
119
        });
120
        dialog.show(WindowManager.MODE.DIALOG);
121
    }
122
}
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
1
package org.gvsig.expressionevaluator.swing.impl;
2

  
3
import java.awt.Point;
4
import java.awt.event.ActionEvent;
5
import java.awt.event.ActionListener;
6
import javax.swing.JButton;
7
import javax.swing.JMenu;
8
import javax.swing.JMenuItem;
9
import javax.swing.JPopupMenu;
10
import org.apache.commons.lang3.StringUtils;
11
import org.gvsig.expressionevaluator.Expression;
12
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
13
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
14
import org.gvsig.expressionevaluator.History;
15
import org.gvsig.tools.ToolsLocator;
16
import org.gvsig.tools.i18n.I18nManager;
17
import org.gvsig.tools.swing.api.ToolsSwingLocator;
18
import org.gvsig.tools.swing.api.windowmanager.Dialog;
19
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
20
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
21
import org.gvsig.tools.swing.icontheme.IconTheme;
22

  
23
/**
24
 *
25
 * @author jjdelcerro
26
 */
27
public abstract class HistoryController {
28

  
29
    private final JButton button;
30

  
31
    public HistoryController(JButton button) {
32
        this.button = button;
33
        if( this.button!=null ) {
34
            IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
35
            this.button.setIcon(iconTheme.get("expressionbuilder-history"));
36
            this.button.addActionListener(new ActionListener() {
37
                @Override
38
                public void actionPerformed(ActionEvent e) {
39
                    doHistory();
40
                }
41
            });
42
        }
43
        
44
    }
45
    
46
    public abstract void updateExpression(Expression expression);
47
    
48
    private void doHistory() {
49
        JPopupMenu popup = createMenu().getPopupMenu();
50
        Point p = this.button.getLocationOnScreen();
51
        popup.show(this.button, 0, this.button.getHeight());
52
    }
53
    
54
    public JMenu createMenu() {
55
        I18nManager i18n = ToolsLocator.getI18nManager();
56
        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
57
        JMenu menu = new JMenu(i18n.getTranslation("_History"));
58
        History history = theManager.getHistory();
59
        if( !history.isEmpty() ) {
60
            for (Expression expression : history) {
61
                menu.add(createHistoryMenuItem(expression));
62
            }
63
            menu.addSeparator();
64
        }
65
        JMenuItem showAllHistory = new JMenuItem(i18n.getTranslation("_Show_all_history"));
66
        showAllHistory.addActionListener(new ActionListener() {
67
            @Override
68
            public void actionPerformed(ActionEvent e) {
69
                doShowHistoryDialog();
70
            }
71
        });
72
        menu.add(showAllHistory);
73
        return menu;
74
    }
75
    
76
    private JMenuItem createHistoryMenuItem(final Expression expression) {
77
        JMenuItem item = new JMenuItem(StringUtils.abbreviate(expression.getPhrase(), 45));
78
        item.addActionListener(new ActionListener() {
79
            @Override
80
            public void actionPerformed(ActionEvent e) {
81
                updateExpression(expression);
82
            }
83
        });
84
        return item;
85
    }
86
    
87
    private void doShowHistoryDialog() {
88
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
89
        final DefaultHistoryPanel panel = new DefaultHistoryPanel();
90
        final Dialog dialog = winManager.createDialog(
91
                panel,
92
                "History",
93
                null, 
94
                WindowManager_v2.BUTTONS_OK_CANCEL
95
        );
96
        dialog.addActionListener(new ActionListener() {
97
            @Override
98
            public void actionPerformed(ActionEvent e) {
99
                if( dialog.getAction()!=WindowManager_v2.BUTTON_OK ) {
100
                    return;
101
                }
102
                updateExpression(panel.getExpression());
103
            }
104
        });
105
        dialog.show(WindowManager.MODE.DIALOG);
106
    }
107
    
108
}
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
5 5
import java.net.URL;
6 6
import java.util.Collection;
7 7
import java.util.List;
8
import java.util.Map;
8 9
import javax.swing.ImageIcon;
9 10
import javax.swing.JButton;
10 11
import javax.swing.JMenuItem;
......
62 63
    private final JMenuItem menuItem;
63 64
    private final AbstractAutomaticExpressionChecker automaticExpressionChecker;
64 65
    private boolean returnNullWhenEmptyExpression;
66
    private final HistoryController historyController;
67
    private final BookmarksController bookmarksController;
65 68
    
66
    public DefaultExpressionPickerController(ExpressionEvaluatorSwingManager manager, JTextComponent text, JButton button) {
69
    public DefaultExpressionPickerController(ExpressionEvaluatorSwingManager manager, 
70
            JTextComponent text, 
71
            JButton button,
72
            JButton btnHistory,
73
            JButton btnBookmarks
74
        ) {
67 75
        ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager();
68 76
        I18nManager i18n = ToolsLocator.getI18nManager();
69 77

  
......
89 97
        this.menuItem.addActionListener(buttonAction);
90 98
        popupMenu.add(this.menuItem);
91 99
        
100
        this.historyController = new HistoryController(btnHistory) {
101
            @Override
102
            public void updateExpression(Expression expression) {
103
                set(expression);
104
            }
105
        };
106
        popupMenu.add(this.historyController.createMenu());
107

  
108
        this.bookmarksController = new BookmarksController(btnBookmarks) {
109
            @Override
110
            public void updateExpression(Expression expression) {
111
                set(expression);
112
            }
113

  
114
            @Override
115
            public Expression getExpressionWithOutHistory() {
116
                return get();
117
            }
118
        };
119
        popupMenu.add(this.bookmarksController.createMenu());
120

  
92 121
        this.automaticExpressionChecker = new AbstractAutomaticExpressionChecker(config, text) {
93 122
            @Override
94 123
            protected Expression getExpression() {
......
236 265
    public void setPreviewSymbolTable(SymbolTable symbolTable) {
237 266
        this.config.setPreviewSymbolTable(symbolTable);
238 267
    }
268

  
269
    @Override
270
    public Object getProperty(String name) {
271
        return this.config.getProperty(name);
272
    }
273

  
274
    @Override
275
    public void setProperty(String name, Object value) {
276
        this.config.setProperty(name, value);
277
    }
278

  
279
    @Override
280
    public Map<String, Object> getProperties() {
281
        return this.config.getProperties();
282
    }
239 283
}
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
9 9
 *
10 10
 * @author jjdelcerro
11 11
 */
12
public interface ExpressionBuilderConfig  {
12
public interface ExpressionBuilderConfig extends PropertiesSupport {
13 13

  
14
    public interface Preferences extends PropertiesSupport {
14
    public interface Preferences {
15 15
        /**
16 16
         * Time in secons to use when obtains the list of elements.
17 17
         * 
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
46 46
   JTextField txtAdvancedExpression = new JTextField();
47 47
   JLabel lblExpressionDeBusqueda = new JLabel();
48 48
   JButton btnAdvancedExpression = new JButton();
49
   JButton btnAdvancedExpressionHistory = new JButton();
50
   JButton btnAdvancedExpressionBookmarks = new JButton();
49 51
   JButton btnSearch = new JButton();
50 52
   JButton btnClear = new JButton();
51 53
   JTable tblResults = new JTable();
......
268 270
   public JPanel createPanel2()
269 271
   {
270 272
      JPanel jpanel1 = new JPanel();
271
      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");
273
      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");
272 274
      CellConstraints cc = new CellConstraints();
273 275
      jpanel1.setLayout(formlayout1);
274 276

  
......
285 287
      btnAdvancedExpression.setBorder(emptyborder1);
286 288
      jpanel1.add(btnAdvancedExpression,cc.xy(4,4));
287 289

  
288
      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5 });
290
      btnAdvancedExpressionHistory.setActionCommand("...");
291
      btnAdvancedExpressionHistory.setName("btnAdvancedExpressionHistory");
292
      EmptyBorder emptyborder2 = new EmptyBorder(2,2,2,2);
293
      btnAdvancedExpressionHistory.setBorder(emptyborder2);
294
      jpanel1.add(btnAdvancedExpressionHistory,cc.xy(6,4));
295

  
296
      btnAdvancedExpressionBookmarks.setActionCommand("...");
297
      btnAdvancedExpressionBookmarks.setName("btnAdvancedExpressionBookmarks");
298
      EmptyBorder emptyborder3 = new EmptyBorder(2,2,2,2);
299
      btnAdvancedExpressionBookmarks.setBorder(emptyborder3);
300
      jpanel1.add(btnAdvancedExpressionBookmarks,cc.xy(8,4));
301

  
302
      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5,6,7,8,9 },new int[]{ 1,2,3,4,5 });
289 303
      return jpanel1;
290 304
   }
291 305

  
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
8 8
import java.net.URL;
9 9
import java.util.ArrayList;
10 10
import java.util.Collection;
11
import java.util.LinkedHashMap;
12 11
import java.util.List;
13
import java.util.Map;
14 12
import javax.swing.Action;
15 13
import javax.swing.ImageIcon;
16 14
import javax.swing.JButton;
......
37 35
import org.gvsig.fmap.dal.feature.FeatureStore;
38 36
import org.gvsig.fmap.dal.feature.FeatureType;
39 37
import org.gvsig.fmap.dal.swing.DALSwingLocator;
40
import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.SelectionAddAction;
41
import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.SelectionFilterAction;
42
import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.SelectionSetAction;
43
import org.gvsig.fmap.dal.swing.impl.searchpanel.actions.ShowFormAction;
44 38
import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
45 39
import org.gvsig.tools.ToolsLocator;
46 40
import org.gvsig.tools.swing.api.ActionListenerSupport;
......
160 154
    private final ActionListenerSupport acctionListeners;
161 155
    private final List<SearchFieldController> searchFields;
162 156
    private ExpressionPickerController advancedExpression;
163
    private List<Action> actions;
157
    private final List<Action> actions;
164 158

  
165 159
    public DefaultSearchPanel(FeatureStore store) {
166 160
        this.store = store;
......
279 273
        }
280 274

  
281 275
        ExpressionEvaluatorSwingManager expressionSwingManager = ExpressionEvaluatorSwingLocator.getManager();
282
        this.advancedExpression = expressionSwingManager.createExpressionPickerController(txtAdvancedExpression, btnAdvancedExpression);
276
        this.advancedExpression = expressionSwingManager.createExpressionPickerController(
277
                txtAdvancedExpression, 
278
                btnAdvancedExpression,
279
                btnAdvancedExpressionHistory,
280
                btnAdvancedExpressionBookmarks
281
        );
283 282

  
284 283
        this.btnSearch.addActionListener(new ActionListener() {
285 284
            @Override
......
441 440
        }
442 441
    }
443 442

  
443
    @Override
444 444
    public FeatureStore getStore() {
445 445
        return store;
446 446
    }
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
1 1
package org.gvsig.fmap.dal.swing.impl.searchpanel.actions;
2 2

  
3 3
import java.awt.event.ActionEvent;
4
import java.net.URL;
4 5
import javax.swing.AbstractAction;
5 6
import javax.swing.Action;
6 7
import javax.swing.event.ListSelectionEvent;
......
12 13
import org.gvsig.fmap.dal.feature.FeatureStore;
13 14
import org.gvsig.fmap.dal.swing.DALSwingLocator;
14 15
import org.gvsig.fmap.dal.swing.DataSwingManager;
16
import org.gvsig.fmap.dal.swing.impl.searchpanel.DefaultSearchPanel;
15 17
import org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel;
16 18
import org.gvsig.tools.ToolsLocator;
17 19
import org.gvsig.tools.i18n.I18nManager;
18 20
import org.gvsig.tools.swing.api.ToolsSwingLocator;
19 21
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
22
import org.gvsig.tools.swing.icontheme.IconTheme;
20 23
import org.slf4j.Logger;
21 24
import org.slf4j.LoggerFactory;
22 25

  
......
41 44
            return new ShowFormAction(panel);
42 45
        }
43 46
        
47
//        public static void selfRegister() {
48
//            DataSwingManager dalSwingManager = DALSwingLocator.getSwingManager();
49
//            dalSwingManager.registerFeatureStoreSearchAction(new ShowFormActionFactory());
50
//            String[][] iconNames = new String[][]{
51
//                new String[]{"dalswing", "search-action-showform"}
52
//            };
53
//            IconTheme theme = ToolsSwingLocator.getIconThemeManager().getCurrent();
54
//            for (String[] icon : iconNames) {
55
//                URL url = ShowFormAction.class.getResource(icon[1] + ".png");
56
//                theme.registerDefault("DALSwing", icon[0], icon[1], null, url);
57
//            }
58
//        }
59
        
44 60
    }
45 61

  
46 62

  
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
114 114
                      </at>
115 115
                      <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
116 116
                     </super>
117
                     <at name="id">embedded.887413730</at>
117
                     <at name="id">embedded.1002811823</at>
118 118
                     <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>
119 119
                     <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>
120 120
                     <at name="components">
......
1436 1436
                      </at>
1437 1437
                      <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
1438 1438
                     </super>
1439
                     <at name="id">embedded.1362533989</at>
1439
                     <at name="id">embedded.203971818</at>
1440 1440
                     <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
1441
                     <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
1441
                     <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>
1442 1442
                     <at name="components">
1443 1443
                      <object classname="java.util.LinkedList">
1444 1444
                       <item >
......
1486 1486
                               </object>
1487 1487
                              </at>
1488 1488
                              <at name="name">txtAdvancedExpression</at>
1489
                              <at name="width">857</at>
1489
                              <at name="width">811</at>
1490 1490
                              <at name="height">20</at>
1491 1491
                             </object>
1492 1492
                            </at>
......
1540 1540
                               </object>
1541 1541
                              </at>
1542 1542
                              <at name="name">lblExpressionDeBusqueda</at>
1543
                              <at name="width">857</at>
1543
                              <at name="width">811</at>
1544 1544
                              <at name="text">Introduzca una expresion de busqueda</at>
1545 1545
                              <at name="fill">
1546 1546
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
1614 1614
                         </object>
1615 1615
                        </at>
1616 1616
                       </item>
1617
                       <item >
1618
                        <at name="value">
1619
                         <object classname="com.jeta.forms.store.memento.BeanMemento">
1620
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1621
                           <at name="cellconstraints">
1622
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1623
                             <at name="column">6</at>
1624
                             <at name="row">4</at>
1625
                             <at name="colspan">1</at>
1626
                             <at name="rowspan">1</at>
1627
                             <at name="halign">default</at>
1628
                             <at name="valign">default</at>
1629
                             <at name="insets" object="insets">0,0,0,0</at>
1630
                            </object>
1631
                           </at>
1632
                           <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1633
                          </super>
1634
                          <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1635
                          <at name="beanclass">javax.swing.JButton</at>
1636
                          <at name="beanproperties">
1637
                           <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1638
                            <at name="classname">javax.swing.JButton</at>
1639
                            <at name="properties">
1640
                             <object classname="com.jeta.forms.store.support.PropertyMap">
1641
                              <at name="border">
1642
                               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1643
                                <super classname="com.jeta.forms.store.properties.BorderProperty">
1644
                                 <at name="name">border</at>
1645
                                </super>
1646
                                <at name="borders">
1647
                                 <object classname="java.util.LinkedList">
1648
                                  <item >
1649
                                   <at name="value">
1650
                                    <object classname="com.jeta.forms.store.properties.EmptyBorderProperty">
1651
                                     <super classname="com.jeta.forms.store.properties.BorderProperty">
1652
                                      <at name="name">border</at>
1653
                                     </super>
1654
                                     <at name="top">2</at>
1655
                                     <at name="left">2</at>
1656
                                     <at name="bottom">2</at>
1657
                                     <at name="right">2</at>
1658
                                    </object>
1659
                                   </at>
1660
                                  </item>
1661
                                 </object>
1662
                                </at>
1663
                               </object>
1664
                              </at>
1665
                              <at name="actionCommand">...</at>
1666
                              <at name="name">btnAdvancedExpressionHistory</at>
1667
                              <at name="width">12</at>
1668
                              <at name="height">12</at>
1669
                             </object>
1670
                            </at>
1671
                           </object>
1672
                          </at>
1673
                         </object>
1674
                        </at>
1675
                       </item>
1676
                       <item >
1677
                        <at name="value">
1678
                         <object classname="com.jeta.forms.store.memento.BeanMemento">
1679
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1680
                           <at name="cellconstraints">
1681
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1682
                             <at name="column">8</at>
1683
                             <at name="row">4</at>
1684
                             <at name="colspan">1</at>
1685
                             <at name="rowspan">1</at>
1686
                             <at name="halign">default</at>
1687
                             <at name="valign">default</at>
1688
                             <at name="insets" object="insets">0,0,0,0</at>
1689
                            </object>
1690
                           </at>
1691
                           <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1692
                          </super>
1693
                          <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1694
                          <at name="beanclass">javax.swing.JButton</at>
1695
                          <at name="beanproperties">
1696
                           <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1697
                            <at name="classname">javax.swing.JButton</at>
1698
                            <at name="properties">
1699
                             <object classname="com.jeta.forms.store.support.PropertyMap">
1700
                              <at name="border">
1701
                               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1702
                                <super classname="com.jeta.forms.store.properties.BorderProperty">
1703
                                 <at name="name">border</at>
1704
                                </super>
1705
                                <at name="borders">
1706
                                 <object classname="java.util.LinkedList">
1707
                                  <item >
1708
                                   <at name="value">
1709
                                    <object classname="com.jeta.forms.store.properties.EmptyBorderProperty">
1710
                                     <super classname="com.jeta.forms.store.properties.BorderProperty">
1711
                                      <at name="name">border</at>
1712
                                     </super>
1713
                                     <at name="top">2</at>
1714
                                     <at name="left">2</at>
1715
                                     <at name="bottom">2</at>
1716
                                     <at name="right">2</at>
1717
                                    </object>
1718
                                   </at>
1719
                                  </item>
1720
                                 </object>
1721
                                </at>
1722
                               </object>
1723
                              </at>
1724
                              <at name="actionCommand">...</at>
1725
                              <at name="name">btnAdvancedExpressionBookmarks</at>
1726
                              <at name="width">12</at>
1727
                              <at name="height">12</at>
1728
                             </object>
1729
                            </at>
1730
                           </object>
1731
                          </at>
1732
                         </object>
1733
                        </at>
1734
                       </item>
1617 1735
                      </object>
1618 1736
                     </at>
1619 1737
                     <at name="properties">
......
1673 1791
                       <at name="rows">
1674 1792
                        <object classname="[Ljava.lang.Object;" size="5">
1675 1793
                         <at name="item" index="0">
1676
                          <object classname="[Ljava.lang.Object;" size="5"/>
1794
                          <object classname="[Ljava.lang.Object;" size="9"/>
1677 1795
                         </at>
1678 1796
                         <at name="item" index="1">
1679
                          <object classname="[Ljava.lang.Object;" size="5"/>
1797
                          <object classname="[Ljava.lang.Object;" size="9"/>
1680 1798
                         </at>
1681 1799
                         <at name="item" index="2">
1682
                          <object classname="[Ljava.lang.Object;" size="5"/>
1800
                          <object classname="[Ljava.lang.Object;" size="9"/>
1683 1801
                         </at>
1684 1802
                         <at name="item" index="3">
1685
                          <object classname="[Ljava.lang.Object;" size="5"/>
1803
                          <object classname="[Ljava.lang.Object;" size="9"/>
1686 1804
                         </at>
1687 1805
                         <at name="item" index="4">
1688
                          <object classname="[Ljava.lang.Object;" size="5"/>
1806
                          <object classname="[Ljava.lang.Object;" size="9"/>
1689 1807
                         </at>
1690 1808
                        </object>
1691 1809
                       </at>
......
1741 1859
         </at>
1742 1860
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
1743 1861
        </super>
1744
        <at name="id">embedded.1752909883</at>
1862
        <at name="id">embedded.659464780</at>
1745 1863
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
1746 1864
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
1747 1865
        <at name="components">
......
2038 2156
         </at>
2039 2157
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
2040 2158
        </super>
2041
        <at name="id">embedded.2093766982</at>
2159
        <at name="id">embedded.2059256114</at>
2042 2160
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
2043 2161
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
2044 2162
        <at name="components">

Also available in: Unified diff