Statistics
| Revision:

svn-gvsig-desktop / 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 / SearchConditionPanelAdvanced.java @ 44855

History | View | Annotate | Download (4.75 KB)

1 44707 jjdelcerro
package org.gvsig.fmap.dal.swing.impl.searchpanel;
2
3
import javax.swing.JButton;
4 44729 omartinez
import javax.swing.JComponent;
5 44750 jjdelcerro
import javax.swing.event.ChangeListener;
6 44707 jjdelcerro
import javax.swing.text.JTextComponent;
7
import org.gvsig.expressionevaluator.Expression;
8
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
9
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
10
import org.gvsig.expressionevaluator.swing.ExpressionPickerController;
11
import org.gvsig.fmap.dal.feature.FeatureStore;
12
import org.gvsig.fmap.dal.swing.DALSwingLocator;
13 44855 jjdelcerro
import org.gvsig.fmap.dal.swing.DataSwingManager;
14 44767 jjdelcerro
import org.gvsig.fmap.dal.swing.searchpanel.AbstractSearchConditionPanel;
15 44707 jjdelcerro
import org.gvsig.fmap.dal.swing.searchpanel.SearchConditionPanel;
16 44829 omartinez
import org.gvsig.fmap.dal.swing.searchpanel.SearchParameters;
17 44750 jjdelcerro
import org.gvsig.tools.swing.api.ChangeListenerHelper;
18
import org.gvsig.tools.swing.api.ToolsSwingLocator;
19 44707 jjdelcerro
20
/**
21
 *
22
 * @author jjdelcerro
23
 */
24 44829 omartinez
public class SearchConditionPanelAdvanced
25
        extends AbstractSearchConditionPanel
26
        implements SearchConditionPanel {
27 44712 jjdelcerro
28 44729 omartinez
    @Override
29
    public JComponent asJComponent() {
30
        return null;
31
    }
32
33 44712 jjdelcerro
    @Override
34 44829 omartinez
    public void put(SearchParameters params) {
35
        Expression filter = params.getQuery().getExpressionFilter();
36
        this.set(filter);
37 44712 jjdelcerro
    }
38
39
    @Override
40 44829 omartinez
    public SearchParameters fetch(SearchParameters params) {
41
        if (params == null) {
42
            return params;
43
        }
44
        Expression exp = this.get();
45
        if (exp == null){
46
            params.getQuery().setFilter((Expression) null);
47
        }else if (exp.isEmpty()) {
48
            params.getQuery().clearFilter();
49
        } else {
50
            params.getQuery().setFilter(exp);
51
        }
52
        return params;
53 44712 jjdelcerro
    }
54
55 44829 omartinez
    private static class SearchConditionPanelAdvancedFactory
56
            implements SearchConditionPanelFactory {
57
58
        @Override
59
        public boolean isApplicable(FeatureStore store) {
60
            return true;
61
        }
62
63
        @Override
64
        public SearchConditionPanel create(Object... os) {
65
            return null;
66
        }
67
68
        @Override
69
        public String getName() {
70
            return "Advanced";
71
        }
72
73 44712 jjdelcerro
    }
74 44829 omartinez
75
    private static final SearchConditionPanelFactory FACTORY = new SearchConditionPanelAdvancedFactory();
76
77
    private final ExpressionPickerController advancedExpression;
78
    private final FeatureStore store;
79
    private final ChangeListenerHelper changeListenerHelper;
80
81
    public SearchConditionPanelAdvanced(
82
            FeatureStore store,
83
            JTextComponent text,
84
            JButton button,
85
            JButton bookmarks,
86
            JButton history
87 44707 jjdelcerro
    ) {
88 44829 omartinez
        this.changeListenerHelper = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper();
89
        this.store = store;
90
        ExpressionEvaluatorSwingManager expressionSwingManager = ExpressionEvaluatorSwingLocator.getManager();
91 44855 jjdelcerro
        DataSwingManager dataSwingManager = DALSwingLocator.getManager();
92
        this.advancedExpression = dataSwingManager.createExpressionPickerController(
93
                this.store,
94 44829 omartinez
                text,
95
                button,
96
                bookmarks,
97
                history
98
        );
99
        initComponents();
100
    }
101 44712 jjdelcerro
102 44829 omartinez
    @Override
103
    public SearchConditionPanelFactory getFactory() {
104
        return FACTORY;
105
    }
106 44707 jjdelcerro
107 44829 omartinez
    private void initComponents() {
108
    }
109
110
    @Override
111
    public void clear() {
112 44707 jjdelcerro
        this.advancedExpression.set(null);
113 44750 jjdelcerro
        this.changeListenerHelper.fireEvent();
114 44829 omartinez
    }
115 44707 jjdelcerro
116 44829 omartinez
    @Override
117
    public Expression get() {
118
        return this.advancedExpression.get();
119
    }
120 44707 jjdelcerro
121 44829 omartinez
    @Override
122
    public boolean isValid(StringBuilder message) {
123
        if (this.advancedExpression.isValid()) {
124
            return true;
125
        }
126
        message.append("The expression entered is not valid.");
127
        return false;
128 44764 jjdelcerro
    }
129 44707 jjdelcerro
130 44829 omartinez
    @Override
131
    public boolean set(Expression filter) {
132
        this.advancedExpression.set(filter);
133
        this.changeListenerHelper.fireEvent();
134
        return true;
135
    }
136
137
    @Override
138
    public void setEnabled(boolean enabled) {
139 44707 jjdelcerro
        this.advancedExpression.setEnabled(enabled);
140 44829 omartinez
    }
141 44750 jjdelcerro
142 44829 omartinez
    @Override
143
    public void addChangeListener(ChangeListener listener) {
144
        this.changeListenerHelper.addChangeListener(listener);
145
    }
146 44750 jjdelcerro
147 44829 omartinez
    @Override
148
    public ChangeListener[] getChangeListeners() {
149
        return this.changeListenerHelper.getChangeListeners();
150
    }
151 44750 jjdelcerro
152 44829 omartinez
    @Override
153
    public void removeChangeListener(ChangeListener listener) {
154
        this.changeListenerHelper.removeChangeListener(listener);
155
    }
156 44750 jjdelcerro
157 44829 omartinez
    @Override
158
    public void removeAllChangeListener() {
159
        this.changeListenerHelper.removeAllChangeListener();
160
    }
161
162
    @Override
163
    public boolean hasChangeListeners() {
164
        return this.changeListenerHelper.hasChangeListeners();
165
    }
166
167 44707 jjdelcerro
}