38 |
38 |
import javax.swing.text.JTextComponent;
|
39 |
39 |
import javax.swing.tree.TreeModel;
|
40 |
40 |
import org.apache.commons.lang3.StringUtils;
|
|
41 |
import org.gvsig.expressionevaluator.ExpressionUtils;
|
41 |
42 |
import org.gvsig.expressionevaluator.swing.Element;
|
42 |
43 |
import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig;
|
43 |
44 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator;
|
... | ... | |
98 |
99 |
import org.gvsig.tools.exception.BaseException;
|
99 |
100 |
import org.gvsig.fmap.dal.swing.DALActionFactory;
|
100 |
101 |
import org.gvsig.fmap.dal.swing.DALActionFactory.DALActionContext;
|
|
102 |
import org.gvsig.fmap.dal.swing.DALSwingLocator;
|
101 |
103 |
import org.gvsig.fmap.dal.swing.ProjectionPickerController;
|
102 |
104 |
import org.gvsig.fmap.dal.swing.impl.featuretable.SimpleFeaturesTableModelImpl;
|
103 |
105 |
import org.gvsig.fmap.dal.swing.impl.featuretype.FeatureAttributeListCellRendererImpl;
|
... | ... | |
199 |
201 |
@Override
|
200 |
202 |
public void configureExpressionBuilder(ExpressionBuilderConfig builder, FeatureStore store) {
|
201 |
203 |
DataManager dataManager = DALLocator.getDataManager();
|
202 |
|
ExpressionEvaluatorSwingManager swingManager = ExpressionEvaluatorSwingLocator.getManager();
|
203 |
204 |
FeatureSymbolTable featureSymbolTable = dataManager.createFeatureSymbolTable();
|
204 |
205 |
|
205 |
206 |
builder.removeAllElements();
|
... | ... | |
223 |
224 |
}
|
224 |
225 |
|
225 |
226 |
@Override
|
|
227 |
public void resetExpressionBuilder(ExpressionBuilderConfig builder) {
|
|
228 |
builder.removeAllElements();
|
|
229 |
builder.setPreviewSymbolTable(ExpressionUtils.createSymbolTable());
|
|
230 |
}
|
|
231 |
|
|
232 |
@Override
|
|
233 |
public void addToExpressionBuilder(ExpressionBuilderConfig builder, FeatureStore store, String name) {
|
|
234 |
// Este metodo permite a?adir mas de un store al builder llamandolo
|
|
235 |
// con un name distinto para cada store. En el arbol se presentaran todos
|
|
236 |
// los stores que se configuren en el builder.
|
|
237 |
// Ojo, que las expresiones creadas por estos builder no son compatible
|
|
238 |
// con SQL.
|
|
239 |
DataManager dataManager = DALLocator.getDataManager();
|
|
240 |
|
|
241 |
// Creamos el store-element y lo a?adimos al builder
|
|
242 |
FeatureStoreElement n = new DefaultFeatureStoreElement2(store, name);
|
|
243 |
builder.addElement(n);
|
|
244 |
|
|
245 |
// Creamos una tabla de simbolos de ejemplo basada en el store, y la
|
|
246 |
// a?adimos a la tabla de simbolos de previsualizacion del builder.
|
|
247 |
FeatureSymbolTable featureSymbolTable = dataManager.createFeatureSymbolTable();
|
|
248 |
Feature sampleFeature = store.getSampleFeature();
|
|
249 |
if( sampleFeature!=null ) {
|
|
250 |
featureSymbolTable.setFeature(sampleFeature);
|
|
251 |
builder.getPreviewSymbolTable().addSymbolTable(featureSymbolTable);
|
|
252 |
}
|
|
253 |
|
|
254 |
// forzamos a que al insertar campos de un store se indique siempre
|
|
255 |
// en nombre del store. Necesario si hay mas de un store en el builder.
|
|
256 |
List<Element> elements = builder.getElements();
|
|
257 |
for (Element item : elements) {
|
|
258 |
if( item instanceof FeatureStoreElement ) {
|
|
259 |
((FeatureStoreElement)item).setUseFullyQualifiedNames(true);
|
|
260 |
}
|
|
261 |
}
|
|
262 |
// Marcamos como no compatible sql las expresiones que vamos a generar.
|
|
263 |
builder.getPreferences().setSQLCompatible(false);
|
|
264 |
|
|
265 |
// A?adimos los generadores de sugerencias.
|
|
266 |
builder.addSuggestionFactory(new StorePointFieldSuggestionProviderFactory(store));
|
|
267 |
builder.addSuggestionFactory(new QuotesForFieldNameSuggestionProviderFactory(store));
|
|
268 |
builder.addSuggestionFactory(new WrongNameFieldSuggestionProviderFactory(store));
|
|
269 |
builder.addSuggestionFactory(new CheckTableFieldsSuggestionProviderFactory(store));
|
|
270 |
}
|
|
271 |
|
|
272 |
@Override
|
226 |
273 |
public JExpressionBuilder createQueryFilterExpresion(FeatureStore store) {
|
227 |
274 |
return this.createJExpressionBuilder(store);
|
228 |
275 |
}
|