Revision 1146 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/gui/filter/FilterDialog.java

View differences:

FilterDialog.java
40 40
 */
41 41
package com.iver.cit.gvsig.gui.filter;
42 42

  
43
import com.hardcode.gdbms.engine.instruction.IncompatibleTypesException;
44
import com.hardcode.gdbms.engine.values.BooleanValue;
45
import com.hardcode.gdbms.engine.values.DateValue;
46
import com.hardcode.gdbms.engine.values.StringValue;
47
import com.hardcode.gdbms.engine.values.Value;
48

  
49
import com.iver.andami.PluginServices;
50
import com.iver.andami.ui.mdiManager.View;
51
import com.iver.andami.ui.mdiManager.ViewInfo;
52

  
53
import com.iver.cit.gvsig.gui.Table;
54

  
55
import com.iver.utiles.DefaultCharSet;
56
import com.iver.utiles.StringUtilities;
57
import com.iver.utiles.exceptionHandling.ExceptionHandlingSupport;
58
import com.iver.utiles.exceptionHandling.ExceptionListener;
59

  
60
import com.lamatek.swingextras.JDateChooser;
61

  
62
import org.apache.log4j.Logger;
63

  
43 64
import java.text.DateFormat;
44 65
import java.text.NumberFormat;
45 66
import java.text.ParseException;
67

  
46 68
import java.util.ArrayList;
47 69
import java.util.Comparator;
48 70
import java.util.Date;
......
56 78
import javax.swing.DefaultListModel;
57 79
import javax.swing.JPanel;
58 80

  
59
import org.apache.log4j.Logger;
60 81

  
61
import com.hardcode.gdbms.engine.instruction.IncompatibleTypesException;
62
import com.hardcode.gdbms.engine.values.BooleanValue;
63
import com.hardcode.gdbms.engine.values.DateValue;
64
import com.hardcode.gdbms.engine.values.StringValue;
65
import com.hardcode.gdbms.engine.values.Value;
66
import com.iver.andami.PluginServices;
67
import com.iver.andami.ui.mdiManager.View;
68
import com.iver.andami.ui.mdiManager.ViewInfo;
69
import com.iver.cit.gvsig.gui.Table;
70
import com.iver.utiles.DefaultCharSet;
71
import com.iver.utiles.StringUtilities;
72
import com.iver.utiles.exceptionHandling.ExceptionHandlingSupport;
73
import com.iver.utiles.exceptionHandling.ExceptionListener;
74
import com.lamatek.swingextras.JDateChooser;
75

  
76

  
77 82
/**
78 83
 * DOCUMENT ME!
79 84
 *
......
81 86
 */
82 87
public class FilterDialog extends JPanel implements View {
83 88
	private static Logger logger = Logger.getLogger(Table.class.getName());
84
    private ArrayList expressionListeners = new ArrayList();
85
    private int position = 0;
86
    private DefaultListModel fieldListModel = new DefaultListModel();
87
    private DefaultListModel valuesListModel = new DefaultListModel();
88
    private NumberFormat nf = NumberFormat.getNumberInstance();
89
    private DateFormat df = DateFormat.getDateInstance();
90
    private ArrayList variables = new ArrayList();
91
    private ExpressionDataSource model = null;
92
    private javax.swing.JPanel jPanel = null;
93
    private javax.swing.JPanel jPanel1 = null;
94
    private javax.swing.JPanel jPanel2 = null;
95
    private javax.swing.JPanel jPanel3 = null;
96
    private javax.swing.JPanel jPanel4 = null;
97
    private javax.swing.JLabel jLabel = null;
98
    private javax.swing.JScrollPane jScrollPane = null;
99
    private javax.swing.JList lstCampos = null;
100
    private javax.swing.JButton btnIgual = null;
101
    private javax.swing.JButton btnMayor = null;
102
    private javax.swing.JButton btnNot = null;
103
    private javax.swing.JButton btnDistinto = null;
104
    private javax.swing.JButton btnMenor = null;
105
    private javax.swing.JButton btnMayorIgual = null;
106
    private javax.swing.JButton btnMenorIgual = null;
107
    private javax.swing.JButton btnAnd = null;
108
    private javax.swing.JButton btnOr = null;
109
    private javax.swing.JTextArea txtExpression = null;
110
    private javax.swing.JPanel jPanel5 = null;
111
    private javax.swing.JButton btnNuevo = null;
112
    private javax.swing.JButton btnAdd = null;
113
    private javax.swing.JButton btnName = null;
114
    private javax.swing.JButton btnFromSet = null;
115
    private javax.swing.JScrollPane jScrollPane1 = null;
116
    private javax.swing.JLabel jLabel1 = null;
117
    private javax.swing.JList lstValores = null;
118
    private javax.swing.JScrollPane jScrollPane2 = null;
119
    private javax.swing.JButton btnParentesis = null;
120
    private ExceptionHandlingSupport exceptionHandlingSupport = new ExceptionHandlingSupport();
121
/*
122
 * TODO Eliminar si est? comentado
123
 *
124
    public class ComparableValue {
125
    	public Value value;
126
    	
127
   
128
		public boolean equals(Object obj) {
129
			Value v = (Value) obj;
130
			return v.equals(obj);
131
		}
132
    }
133
  */  
134
    /**
135
     * This is the default constructor
136
     */
137
    public FilterDialog() {
138
        super();
139
        initialize();
140
        
141
    }
89
	private ArrayList expressionListeners = new ArrayList();
90
	private int position = 0;
91
	private DefaultListModel fieldListModel = new DefaultListModel();
92
	private DefaultListModel valuesListModel = new DefaultListModel();
93
	private NumberFormat nf = NumberFormat.getNumberInstance();
94
	private DateFormat df = DateFormat.getDateInstance();
95
	private ArrayList variables = new ArrayList();
96
	private ExpressionDataSource model = null;
97
	private javax.swing.JPanel jPanel = null;
98
	private javax.swing.JPanel jPanel1 = null;
99
	private javax.swing.JPanel jPanel2 = null;
100
	private javax.swing.JPanel jPanel3 = null;
101
	private javax.swing.JPanel jPanel4 = null;
102
	private javax.swing.JLabel jLabel = null;
103
	private javax.swing.JScrollPane jScrollPane = null;
104
	private javax.swing.JList lstCampos = null;
105
	private javax.swing.JButton btnIgual = null;
106
	private javax.swing.JButton btnMayor = null;
107
	private javax.swing.JButton btnNot = null;
108
	private javax.swing.JButton btnDistinto = null;
109
	private javax.swing.JButton btnMenor = null;
110
	private javax.swing.JButton btnMayorIgual = null;
111
	private javax.swing.JButton btnMenorIgual = null;
112
	private javax.swing.JButton btnAnd = null;
113
	private javax.swing.JButton btnOr = null;
114
	private javax.swing.JTextArea txtExpression = null;
115
	private javax.swing.JPanel jPanel5 = null;
116
	private javax.swing.JButton btnNuevo = null;
117
	private javax.swing.JButton btnAdd = null;
118
	private javax.swing.JButton btnName = null;
119
	private javax.swing.JButton btnFromSet = null;
120
	private javax.swing.JScrollPane jScrollPane1 = null;
121
	private javax.swing.JLabel jLabel1 = null;
122
	private javax.swing.JList lstValores = null;
123
	private javax.swing.JScrollPane jScrollPane2 = null;
124
	private javax.swing.JButton btnParentesis = null;
125
	private ExceptionHandlingSupport exceptionHandlingSupport = new ExceptionHandlingSupport();
142 126

  
143
    /**
144
     * DOCUMENT ME!
145
     *
146
     * @param t DOCUMENT ME!
147
     */
148
    public void setModel(ExpressionDataSource t) {
149
        model = t;
150
        fieldListModel.clear();
127
	/*
128
	 * TODO Eliminar si est? comentado
129
	 *
130
	      public class ComparableValue {
131
	              public Value value;
132
	
133
	
134
	                  public boolean equals(Object obj) {
135
	                          Value v = (Value) obj;
136
	                          return v.equals(obj);
137
	                  }
138
	      }
139
	 */
151 140

  
152
			try {
153
				for (int i = 0; i < model.getFieldCount(); i++) {
154
				    fieldListModel.addElement(model.getFieldName(i));
155
				}
156
			} catch (FilterException e) {
157
				throwException(e);
141
	/**
142
	 * This is the default constructor
143
	 */
144
	public FilterDialog() {
145
		super();
146
		initialize();
147
	}
148

  
149
	/**
150
	 * DOCUMENT ME!
151
	 *
152
	 * @param t DOCUMENT ME!
153
	 */
154
	public void setModel(ExpressionDataSource t) {
155
		model = t;
156
		fieldListModel.clear();
157

  
158
		try {
159
			for (int i = 0; i < model.getFieldCount(); i++) {
160
				fieldListModel.addElement(model.getFieldName(i));
158 161
			}
159
    }
162
		} catch (FilterException e) {
163
			throwException(e);
164
		}
165
	}
160 166

  
161
    /**
162
     * Rellena la lista con los valores del campo seleccionado
163
     *
164
     * @param timeOut DOCUMENT ME!
165
     */
166
    private void fillValues(int timeOut) {
167
        int index = lstCampos.getSelectedIndex();
167
	/**
168
	 * Rellena la lista con los valores del campo seleccionado
169
	 *
170
	 * @param timeOut DOCUMENT ME!
171
	 */
172
	private void fillValues(int timeOut) {
173
		int index = lstCampos.getSelectedIndex();
168 174

  
169
        //Index es ahora el ?ndice del campo seleccionado
170
        //Se eliminan los duplicados
171
    	TreeSet conjunto = new TreeSet(new Comparator() {
172
			public int compare(Object o1, Object o2) {
173
				int resul = -1;
175
		//Index es ahora el ?ndice del campo seleccionado
176
		//Se eliminan los duplicados
177
		TreeSet conjunto = new TreeSet(new Comparator() {
178
					public int compare(Object o1, Object o2) {
179
						int resul = -1;
174 180

  
175
				if ((o1 != null) && (o2 != null)) {
176
					Value v2 = (Value) o2;
177
					Value v1 = (Value) o1;
178
					BooleanValue boolVal;
181
						if ((o1 != null) && (o2 != null)) {
182
							Value v2 = (Value) o2;
183
							Value v1 = (Value) o1;
184
							BooleanValue boolVal;
179 185

  
180
					try {
181
						boolVal = (BooleanValue) (v1.greater(v2));
186
							try {
187
								boolVal = (BooleanValue) (v1.greater(v2));
182 188

  
183
						if (boolVal.getValue()) {
184
							return 1;
185
						}
189
								if (boolVal.getValue()) {
190
									return 1;
191
								}
186 192

  
187
						boolVal = (BooleanValue) (v1.less(v2));
193
								boolVal = (BooleanValue) (v1.less(v2));
188 194

  
189
						if (boolVal.getValue()) {
190
							return -1;
195
								if (boolVal.getValue()) {
196
									return -1;
197
								}
198
							} catch (IncompatibleTypesException e) {
199
								// TODO Auto-generated catch block
200
								e.printStackTrace();
201
							}
191 202
						}
192
					} catch (IncompatibleTypesException e) {
193
						// TODO Auto-generated catch block
194
						e.printStackTrace();
203

  
204
						return 0;
195 205
					}
206
				}); // Para poder ordenar
207

  
208
		valuesListModel.clear();
209

  
210
		try {
211
			for (int i = 0; i < model.getRowCount(); i++) {
212
				Value value = model.getFieldValue(i, index);
213

  
214
				if (!conjunto.contains(value)) {
215
					conjunto.add(value);
196 216
				}
197

  
198
				return 0;
199 217
			}
200
		}); // Para poder ordenar
201 218

  
202
        valuesListModel.clear();
203
        try {
204
			for (int i = 0; i < model.getRowCount(); i++){
205
			    Value value = model.getFieldValue(i, index);
219
			Iterator it = conjunto.iterator();
206 220

  
207
			    if (!conjunto.contains(value)) {
208
			        conjunto.add(value);
209
			    }
210
			}
211
			Iterator it = conjunto.iterator();			
212
			while (it.hasNext())				
221
			while (it.hasNext())
213 222
				valuesListModel.addElement(it.next());
214
			
215 223
		} catch (FilterException e) {
216 224
			throwException(e);
217 225
		}
218
    }
226
	}
219 227

  
220
    /**
221
     * DOCUMENT ME!
222
     *
223
     * @param expresion DOCUMENT ME!
224
     * @param substring DOCUMENT ME!
225
     * @param startingPos DOCUMENT ME!
226
     *
227
     * @return DOCUMENT ME!
228
     */
229
    private int getIndex(String expresion, String substring, int startingPos) {
230
        int index = startingPos;
228
	/**
229
	 * DOCUMENT ME!
230
	 *
231
	 * @param expresion DOCUMENT ME!
232
	 * @param substring DOCUMENT ME!
233
	 * @param startingPos DOCUMENT ME!
234
	 *
235
	 * @return DOCUMENT ME!
236
	 */
237
	private int getIndex(String expresion, String substring, int startingPos) {
238
		int index = startingPos;
231 239

  
232
        do {
233
            index = expresion.indexOf(substring, index);
234
        } while ((StringUtilities.isBetweenSymbols(expresion, index, "\"")) &&
235
                (index != -1));
240
		do {
241
			index = expresion.indexOf(substring, index);
242
		} while ((StringUtilities.isBetweenSymbols(expresion, index, "\"")) &&
243
				(index != -1));
236 244

  
237
        return index;
238
    }
245
		return index;
246
	}
239 247

  
240
    /**
241
     * DOCUMENT ME!
242
     *
243
     * @param expresion DOCUMENT ME!
244
     * @param word DOCUMENT ME!
245
     * @param translation DOCUMENT ME!
246
     *
247
     * @return DOCUMENT ME!
248
     *
249
     * @throws ParseException DOCUMENT ME!
250
     */
251
    private String translateWord(String expresion, String word,
252
        String translation) throws ParseException {
253
        int booleanIndex = 0;
254
        int endIndex = 0;
255
        StringBuffer res = new StringBuffer();
248
	/**
249
	 * DOCUMENT ME!
250
	 *
251
	 * @param expresion DOCUMENT ME!
252
	 * @param word DOCUMENT ME!
253
	 * @param translation DOCUMENT ME!
254
	 *
255
	 * @return DOCUMENT ME!
256
	 *
257
	 * @throws ParseException DOCUMENT ME!
258
	 */
259
	private String translateWord(String expresion, String word,
260
		String translation) throws ParseException {
261
		int booleanIndex = 0;
262
		int endIndex = 0;
263
		StringBuffer res = new StringBuffer();
256 264

  
257
        while ((booleanIndex = getIndex(expresion, word, booleanIndex)) != -1) {
258
            res.append(expresion.substring(endIndex, booleanIndex));
259
            endIndex = booleanIndex + word.length();
260
            booleanIndex++;
261
            res.append(translation);
262
        }
265
		while ((booleanIndex = getIndex(expresion, word, booleanIndex)) != -1) {
266
			res.append(expresion.substring(endIndex, booleanIndex));
267
			endIndex = booleanIndex + word.length();
268
			booleanIndex++;
269
			res.append(translation);
270
		}
263 271

  
264
        if (endIndex < expresion.length()) {
265
            res.append(expresion.substring(endIndex));
266
        }
272
		if (endIndex < expresion.length()) {
273
			res.append(expresion.substring(endIndex));
274
		}
267 275

  
268
        return res.toString();
269
    }
276
		return res.toString();
277
	}
270 278

  
271
    /**
272
     * DOCUMENT ME!
273
     *
274
     * @param expresion DOCUMENT ME!
275
     *
276
     * @return DOCUMENT ME!
277
     *
278
     * @throws ParseException DOCUMENT ME!
279
     */
280
    private String translateDates(String expresion) throws ParseException {
281
        //Se obtiene el valor de la fecha
282
        String date = StringUtilities.substringDelimited(expresion, "Date(",
283
                ")", 0);
279
	/**
280
	 * DOCUMENT ME!
281
	 *
282
	 * @param expresion DOCUMENT ME!
283
	 *
284
	 * @return DOCUMENT ME!
285
	 *
286
	 * @throws ParseException DOCUMENT ME!
287
	 */
288
	private String translateDates(String expresion) throws ParseException {
289
		//Se obtiene el valor de la fecha
290
		String date = StringUtilities.substringDelimited(expresion, "Date(",
291
				")", 0);
284 292

  
285
        if (date == null) {
286
            return expresion;
287
        }
293
		if (date == null) {
294
			return expresion;
295
		}
288 296

  
289
        //Se comprueba que no est? entre comillas 
290
        int startIndex = expresion.indexOf(date);
297
		//Se comprueba que no est? entre comillas 
298
		int startIndex = expresion.indexOf(date);
291 299

  
292
        while (startIndex != -1) {
293
            if (!StringUtilities.isBetweenSymbols(expresion, startIndex, "\"")) {
294
                //Se sustituye por el valor ordinal de la fecha
295
                expresion = expresion.substring(0, startIndex - 5) +
296
                    expresion.substring(startIndex).replaceFirst(date + "\\)",
297
                        new Long((df.parse(date)).getTime()).toString());
298
    			;
299
            } else {
300
                startIndex += date.length();
301
            }
300
		while (startIndex != -1) {
301
			if (!StringUtilities.isBetweenSymbols(expresion, startIndex, "\"")) {
302
				//Se sustituye por el valor ordinal de la fecha
303
				expresion = expresion.substring(0, startIndex - 5) +
304
					expresion.substring(startIndex).replaceFirst(date + "\\)",
305
						new Long((df.parse(date)).getTime()).toString());
306
				;
307
			} else {
308
				startIndex += date.length();
309
			}
302 310

  
303
            //Se obtiene el valor de la fecha
304
/*            date = StringUtilities.substringDelimited(expresion, "Date(", ")",
305
                    startIndex);
306
*/
307
            if (date == null) {
308
                return expresion;
309
            }
311
			//Se obtiene el valor de la fecha
310 312

  
311
            startIndex = expresion.indexOf(date, startIndex);
312
        }
313
			/*            date = StringUtilities.substringDelimited(expresion, "Date(", ")",
314
			   startIndex);
315
			 */
316
			if (date == null) {
317
				return expresion;
318
			}
313 319

  
314
        return expresion;
315
    }
320
			startIndex = expresion.indexOf(date, startIndex);
321
		}
316 322

  
317
    /**
318
     * DOCUMENT ME!
319
     *
320
     * @param expresion DOCUMENT ME!
321
     *
322
     * @return DOCUMENT ME!
323
     *
324
     * @throws ParseException DOCUMENT ME!
325
     */
326
    public String translateNumber(String expresion) throws ParseException {
327
        DefaultCharSet ss = new DefaultCharSet();
328
        ss.addInterval('0', '9');
329
        ss.addCharacter(',');
330
        ss.addCharacter('.');
323
		return expresion;
324
	}
331 325

  
332
        String number = StringUtilities.substringWithSymbols(expresion, ss, 0);
326
	/**
327
	 * DOCUMENT ME!
328
	 *
329
	 * @param expresion DOCUMENT ME!
330
	 *
331
	 * @return DOCUMENT ME!
332
	 *
333
	 * @throws ParseException DOCUMENT ME!
334
	 */
335
	public String translateNumber(String expresion) throws ParseException {
336
		DefaultCharSet ss = new DefaultCharSet();
337
		ss.addInterval('0', '9');
338
		ss.addCharacter(',');
339
		ss.addCharacter('.');
333 340

  
334
        if (number == null) {
335
            return expresion;
336
        }
341
		String number = StringUtilities.substringWithSymbols(expresion, ss, 0);
337 342

  
338
        int startIndex = expresion.indexOf(number);
343
		if (number == null) {
344
			return expresion;
345
		}
339 346

  
340
        while (startIndex != -1) {
341
            Number n = nf.parse(number);
347
		int startIndex = expresion.indexOf(number);
342 348

  
343
            if (!StringUtilities.isBetweenSymbols(expresion, startIndex, "\"")) {
344
                //Se sustituye por el valor ordinal de la fecha
345
                expresion = expresion.substring(0, startIndex) +
346
                    expresion.substring(startIndex).replaceFirst(number,
347
                        n.toString());
348
            } else {
349
                startIndex += n.toString().length();
350
            }
349
		while (startIndex != -1) {
350
			Number n = nf.parse(number);
351 351

  
352
            number = StringUtilities.substringWithSymbols(expresion, ss,
353
                    startIndex);
352
			if (!StringUtilities.isBetweenSymbols(expresion, startIndex, "\"")) {
353
				//Se sustituye por el valor ordinal de la fecha
354
				expresion = expresion.substring(0, startIndex) +
355
					expresion.substring(startIndex).replaceFirst(number,
356
						n.toString());
357
			} else {
358
				startIndex += n.toString().length();
359
			}
354 360

  
355
            if (number == null) {
356
                return expresion;
357
            }
361
			number = StringUtilities.substringWithSymbols(expresion, ss,
362
					startIndex);
358 363

  
359
            startIndex = expresion.indexOf(number, startIndex);
360
        }
364
			if (number == null) {
365
				return expresion;
366
			}
361 367

  
362
        return expresion;
363
    }
368
			startIndex = expresion.indexOf(number, startIndex);
369
		}
364 370

  
365
    /**
366
     * DOCUMENT ME!
367
     *
368
     * @return DOCUMENT ME!
369
     *
370
     * @throws ParseException DOCUMENT ME!
371
     */
372
    private String validateExpression() throws ParseException {
373
        String expression = txtExpression.getText();
374
        HashSet variablesIndexes = new HashSet();
371
		return expresion;
372
	}
375 373

  
376
        StringBuffer traducida = new StringBuffer();
374
	/**
375
	 * DOCUMENT ME!
376
	 *
377
	 * @return DOCUMENT ME!
378
	 *
379
	 * @throws ParseException DOCUMENT ME!
380
	 */
381
	private String validateExpression() throws ParseException {
382
		String expression = txtExpression.getText();
383
		HashSet variablesIndexes = new HashSet();
377 384

  
378
        //Se transforman los nombres de los campos en las variables xix que analizar?n
379
        //Se quitan los Date(fecha) y se mete la fecha correspondiente
380
        expression = translateDates(expression);
381
        expression = translateNumber(expression);
382
        expression = translateWord(expression, "true", "1");
383
        expression = translateWord(expression, "false", "0");
384
        
385
        String replacement;
386
        Pattern patron = Pattern.compile("[^<>!]=");
387
        Matcher m = patron.matcher(expression);
388
        int index = 0;
389
        while (m.find(index)){
390
        	index = m.start();
391
        	replacement = expression.charAt(index) + "==";
392
        	m.replaceFirst(replacement);
393
        	index++;
394
        }
395
        
396
        expression = expression.replaceAll("[^<>!]=", "==");
385
		StringBuffer traducida = new StringBuffer();
397 386

  
387
		//Se transforman los nombres de los campos en las variables xix que analizar?n
388
		//Se quitan los Date(fecha) y se mete la fecha correspondiente
389
		expression = translateDates(expression);
390
		expression = translateNumber(expression);
391
		expression = translateWord(expression, "true", "1");
392
		expression = translateWord(expression, "false", "0");
393

  
394
		String replacement;
395
		Pattern patron = Pattern.compile("[^<>!]=");
396
		Matcher m = patron.matcher(expression);
397
		int index = 0;
398

  
399
		while (m.find(index)) {
400
			index = m.start();
401
			replacement = expression.charAt(index) + "==";
402
			m.replaceFirst(replacement);
403
			index++;
404
		}
405

  
406
		expression = expression.replaceAll("[^<>!]=", "==");
407

  
398 408
		logger.debug(expression);
399
	
400
        return expression;
401
    }
402 409

  
403
    /**
404
     * DOCUMENT ME!
405
     *
406
     * @param symbol DOCUMENT ME!
407
     */
408
    private void putSymbol(String symbol) {
409
        int position = txtExpression.getCaretPosition();
410
        txtExpression.setText(StringUtilities.insert(txtExpression.getText(),
411
                position, symbol));
410
		return expression;
411
	}
412 412

  
413
        if (symbol.equals(" () ")) {
414
            position = position + 2;
415
        } else {
416
            position = position + symbol.length();
417
        }
413
	/**
414
	 * DOCUMENT ME!
415
	 *
416
	 * @param symbol DOCUMENT ME!
417
	 */
418
	private void putSymbol(String symbol) {
419
		int position = txtExpression.getCaretPosition();
420
		txtExpression.setText(StringUtilities.insert(txtExpression.getText(),
421
				position, symbol));
418 422

  
419
        txtExpression.setCaretPosition(position);
420
    }
423
		if (symbol.equals(" () ")) {
424
			position = position + 2;
425
		} else {
426
			position = position + symbol.length();
427
		}
421 428

  
422
    /**
423
     * This method initializes this
424
     */
425
    private void initialize() {
426
        this.setLayout(new java.awt.BorderLayout());
427
        this.add(getJPanel(), java.awt.BorderLayout.CENTER);
428
        this.add(getJPanel1(), java.awt.BorderLayout.SOUTH);
429
    }
429
		txtExpression.setCaretPosition(position);
430
	}
430 431

  
431
    /**
432
     * This method initializes jPanel
433
     *
434
     * @return javax.swing.JPanel
435
     */
436
    private javax.swing.JPanel getJPanel() {
437
        if (jPanel == null) {
438
            jPanel = new javax.swing.JPanel();
439
            jPanel.setLayout(new java.awt.BorderLayout());
440
            jPanel.add(getJPanel2(), java.awt.BorderLayout.WEST);
441
            jPanel.add(getJPanel3(), java.awt.BorderLayout.CENTER);
442
            jPanel.add(getJPanel4(), java.awt.BorderLayout.EAST);
443
        }
432
	/**
433
	 * This method initializes this
434
	 */
435
	private void initialize() {
436
		this.setLayout(new java.awt.BorderLayout());
437
		this.add(getJPanel(), java.awt.BorderLayout.CENTER);
438
		this.add(getJPanel1(), java.awt.BorderLayout.SOUTH);
439
	}
444 440

  
445
        return jPanel;
446
    }
441
	/**
442
	 * This method initializes jPanel
443
	 *
444
	 * @return javax.swing.JPanel
445
	 */
446
	private javax.swing.JPanel getJPanel() {
447
		if (jPanel == null) {
448
			jPanel = new javax.swing.JPanel();
449
			jPanel.setLayout(new java.awt.BorderLayout());
450
			jPanel.add(getJPanel2(), java.awt.BorderLayout.WEST);
451
			jPanel.add(getJPanel3(), java.awt.BorderLayout.CENTER);
452
			jPanel.add(getJPanel4(), java.awt.BorderLayout.EAST);
453
		}
447 454

  
448
    /**
449
     * This method initializes jPanel1
450
     *
451
     * @return javax.swing.JPanel
452
     */
453
    private javax.swing.JPanel getJPanel1() {
454
        if (jPanel1 == null) {
455
            jPanel1 = new javax.swing.JPanel();
456
            jPanel1.add(getJScrollPane2(), null);
457
            jPanel1.add(getJPanel5(), null);
458
            jPanel1.setPreferredSize(new java.awt.Dimension(10, 110));
459
        }
455
		return jPanel;
456
	}
460 457

  
461
        return jPanel1;
462
    }
458
	/**
459
	 * This method initializes jPanel1
460
	 *
461
	 * @return javax.swing.JPanel
462
	 */
463
	private javax.swing.JPanel getJPanel1() {
464
		if (jPanel1 == null) {
465
			jPanel1 = new javax.swing.JPanel();
466
			jPanel1.add(getJScrollPane2(), null);
467
			jPanel1.add(getJPanel5(), null);
468
			jPanel1.setPreferredSize(new java.awt.Dimension(10, 110));
469
		}
463 470

  
464
    /**
465
     * This method initializes jPanel2
466
     *
467
     * @return javax.swing.JPanel
468
     */
469
    private javax.swing.JPanel getJPanel2() {
470
        if (jPanel2 == null) {
471
            jPanel2 = new javax.swing.JPanel();
472
            jPanel2.add(getJLabel(), null);
473
            jPanel2.add(getJScrollPane(), null);
474
            jPanel2.setPreferredSize(new java.awt.Dimension(150, 170));
475
        }
471
		return jPanel1;
472
	}
476 473

  
477
        return jPanel2;
478
    }
474
	/**
475
	 * This method initializes jPanel2
476
	 *
477
	 * @return javax.swing.JPanel
478
	 */
479
	private javax.swing.JPanel getJPanel2() {
480
		if (jPanel2 == null) {
481
			jPanel2 = new javax.swing.JPanel();
482
			jPanel2.add(getJLabel(), null);
483
			jPanel2.add(getJScrollPane(), null);
484
			jPanel2.setPreferredSize(new java.awt.Dimension(150, 170));
485
		}
479 486

  
480
    /**
481
     * This method initializes jPanel3
482
     *
483
     * @return javax.swing.JPanel
484
     */
485
    private javax.swing.JPanel getJPanel3() {
486
        if (jPanel3 == null) {
487
            jPanel3 = new javax.swing.JPanel();
488
            jPanel3.add(getBtnIgual(), null);
489
            jPanel3.add(getBtnDistinto(), null);
490
            jPanel3.add(getBtnMayor(), null);
491
            jPanel3.add(getBtnMenor(), null);
492
            jPanel3.add(getBtnMenorIgual(), null);
493
            jPanel3.add(getBtnMayorIgual(), null);
494
            jPanel3.add(getBtnAnd(), null);
495
            jPanel3.add(getBtnOr(), null);
496
            jPanel3.add(getBtnNot(), null);
497
            jPanel3.add(getBtnParentesis(), null);
498
            jPanel3.add(getBtnName(), null);
499
            jPanel3.setPreferredSize(new java.awt.Dimension(180,36));
500
        }
487
		return jPanel2;
488
	}
501 489

  
502
        return jPanel3;
503
    }
490
	/**
491
	 * This method initializes jPanel3
492
	 *
493
	 * @return javax.swing.JPanel
494
	 */
495
	private javax.swing.JPanel getJPanel3() {
496
		if (jPanel3 == null) {
497
			jPanel3 = new javax.swing.JPanel();
498
			jPanel3.add(getBtnIgual(), null);
499
			jPanel3.add(getBtnDistinto(), null);
500
			jPanel3.add(getBtnMayor(), null);
501
			jPanel3.add(getBtnMenor(), null);
502
			jPanel3.add(getBtnMenorIgual(), null);
503
			jPanel3.add(getBtnMayorIgual(), null);
504
			jPanel3.add(getBtnAnd(), null);
505
			jPanel3.add(getBtnOr(), null);
506
			jPanel3.add(getBtnNot(), null);
507
			jPanel3.add(getBtnParentesis(), null);
508
			jPanel3.add(getBtnName(), null);
509
			jPanel3.setPreferredSize(new java.awt.Dimension(180, 36));
510
		}
504 511

  
505
    /**
506
     * This method initializes jPanel4
507
     *
508
     * @return javax.swing.JPanel
509
     */
510
    private javax.swing.JPanel getJPanel4() {
511
        if (jPanel4 == null) {
512
            jPanel4 = new javax.swing.JPanel();
513
            jPanel4.add(getJLabel1(), null);
514
            jPanel4.add(getJScrollPane1(), null);
515
            jPanel4.setPreferredSize(new java.awt.Dimension(150, 10));
516
        }
512
		return jPanel3;
513
	}
517 514

  
518
        return jPanel4;
519
    }
515
	/**
516
	 * This method initializes jPanel4
517
	 *
518
	 * @return javax.swing.JPanel
519
	 */
520
	private javax.swing.JPanel getJPanel4() {
521
		if (jPanel4 == null) {
522
			jPanel4 = new javax.swing.JPanel();
523
			jPanel4.add(getJLabel1(), null);
524
			jPanel4.add(getJScrollPane1(), null);
525
			jPanel4.setPreferredSize(new java.awt.Dimension(150, 10));
526
		}
520 527

  
521
    /**
522
     * This method initializes jLabel
523
     *
524
     * @return javax.swing.JLabel
525
     */
526
    private javax.swing.JLabel getJLabel() {
527
        if (jLabel == null) {
528
            jLabel = new javax.swing.JLabel();
529
            jLabel.setText(PluginServices.getText(this,"Campos")+":");
530
        }
528
		return jPanel4;
529
	}
531 530

  
532
        return jLabel;
533
    }
531
	/**
532
	 * This method initializes jLabel
533
	 *
534
	 * @return javax.swing.JLabel
535
	 */
536
	private javax.swing.JLabel getJLabel() {
537
		if (jLabel == null) {
538
			jLabel = new javax.swing.JLabel();
539
			jLabel.setText(PluginServices.getText(this, "Campos") + ":");
540
		}
534 541

  
535
    /**
536
     * This method initializes jScrollPane
537
     *
538
     * @return javax.swing.JScrollPane
539
     */
540
    private javax.swing.JScrollPane getJScrollPane() {
541
        if (jScrollPane == null) {
542
            jScrollPane = new javax.swing.JScrollPane();
543
            jScrollPane.setViewportView(getLstCampos());
544
            jScrollPane.setPreferredSize(new java.awt.Dimension(135, 120));
545
        }
542
		return jLabel;
543
	}
546 544

  
547
        return jScrollPane;
548
    }
545
	/**
546
	 * This method initializes jScrollPane
547
	 *
548
	 * @return javax.swing.JScrollPane
549
	 */
550
	private javax.swing.JScrollPane getJScrollPane() {
551
		if (jScrollPane == null) {
552
			jScrollPane = new javax.swing.JScrollPane();
553
			jScrollPane.setViewportView(getLstCampos());
554
			jScrollPane.setPreferredSize(new java.awt.Dimension(135, 120));
555
		}
549 556

  
550
    /**
551
     * This method initializes lstCampos
552
     *
553
     * @return javax.swing.JList
554
     */
555
    private javax.swing.JList getLstCampos() {
556
        if (lstCampos == null) {
557
            lstCampos = new javax.swing.JList();
558
            lstCampos.setModel(fieldListModel);
559
            lstCampos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
560
            lstCampos.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
561
                    public void valueChanged(
562
                        javax.swing.event.ListSelectionEvent e) {
563
                        fillValues(0);
564
                    }
565
                });
566
            lstCampos.addMouseListener(new java.awt.event.MouseAdapter() {
567
                    public void mouseClicked(java.awt.event.MouseEvent e) {
568
                        if (e.getClickCount() == 2) {
569
                            putSymbol((String) fieldListModel.getElementAt(
570
                                    getLstCampos().getSelectedIndex()));
571
                        }
572
                    }
573
                });
574
        }
557
		return jScrollPane;
558
	}
575 559

  
576
        return lstCampos;
577
    }
560
	/**
561
	 * This method initializes lstCampos
562
	 *
563
	 * @return javax.swing.JList
564
	 */
565
	private javax.swing.JList getLstCampos() {
566
		if (lstCampos == null) {
567
			lstCampos = new javax.swing.JList();
568
			lstCampos.setModel(fieldListModel);
569
			lstCampos.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
570
			lstCampos.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
571
					public void valueChanged(
572
						javax.swing.event.ListSelectionEvent e) {
573
						fillValues(0);
574
					}
575
				});
576
			lstCampos.addMouseListener(new java.awt.event.MouseAdapter() {
577
					public void mouseClicked(java.awt.event.MouseEvent e) {
578
						if (e.getClickCount() == 2) {
579
							putSymbol((String) fieldListModel.getElementAt(
580
									getLstCampos().getSelectedIndex()));
581
						}
582
					}
583
				});
584
		}
578 585

  
579
    /**
580
     * This method initializes btnIgual
581
     *
582
     * @return javax.swing.JButton
583
     */
584
    private javax.swing.JButton getBtnIgual() {
585
        if (btnIgual == null) {
586
            btnIgual = new javax.swing.JButton();
587
            btnIgual.setText("=");
588
            btnIgual.setMargin(new java.awt.Insets(2, 2, 2, 2));
589
            btnIgual.setPreferredSize(new java.awt.Dimension(40, 20));
590
            btnIgual.addActionListener(new java.awt.event.ActionListener() {
591
                    public void actionPerformed(java.awt.event.ActionEvent e) {
592
                        putSymbol(" = ");
593
                    }
594
                });
595
        }
586
		return lstCampos;
587
	}
596 588

  
597
        return btnIgual;
598
    }
589
	/**
590
	 * This method initializes btnIgual
591
	 *
592
	 * @return javax.swing.JButton
593
	 */
594
	private javax.swing.JButton getBtnIgual() {
595
		if (btnIgual == null) {
596
			btnIgual = new javax.swing.JButton();
597
			btnIgual.setText("=");
598
			btnIgual.setMargin(new java.awt.Insets(2, 2, 2, 2));
599
			btnIgual.setPreferredSize(new java.awt.Dimension(40, 20));
600
			btnIgual.addActionListener(new java.awt.event.ActionListener() {
601
					public void actionPerformed(java.awt.event.ActionEvent e) {
602
						putSymbol(" = ");
603
					}
604
				});
605
		}
599 606

  
600
    /**
601
     * This method initializes btnMayor
602
     *
603
     * @return javax.swing.JButton
604
     */
605
    private javax.swing.JButton getBtnMayor() {
606
        if (btnMayor == null) {
607
            btnMayor = new javax.swing.JButton();
608
            btnMayor.setText(">");
609
            btnMayor.setMargin(new java.awt.Insets(2, 2, 2, 2));
610
            btnMayor.setPreferredSize(new java.awt.Dimension(40, 20));
611
            btnMayor.addActionListener(new java.awt.event.ActionListener() {
612
                    public void actionPerformed(java.awt.event.ActionEvent e) {
613
                        putSymbol(" > ");
614
                    }
615
                });
616
        }
607
		return btnIgual;
608
	}
617 609

  
618
        return btnMayor;
619
    }
610
	/**
611
	 * This method initializes btnMayor
612
	 *
613
	 * @return javax.swing.JButton
614
	 */
615
	private javax.swing.JButton getBtnMayor() {
616
		if (btnMayor == null) {
617
			btnMayor = new javax.swing.JButton();
618
			btnMayor.setText(">");
619
			btnMayor.setMargin(new java.awt.Insets(2, 2, 2, 2));
620
			btnMayor.setPreferredSize(new java.awt.Dimension(40, 20));
621
			btnMayor.addActionListener(new java.awt.event.ActionListener() {
622
					public void actionPerformed(java.awt.event.ActionEvent e) {
623
						putSymbol(" > ");
624
					}
625
				});
626
		}
620 627

  
621
    /**
622
     * This method initializes btnNot
623
     *
624
     * @return javax.swing.JButton
625
     */
626
    private javax.swing.JButton getBtnNot() {
627
        if (btnNot == null) {
628
            btnNot = new javax.swing.JButton();
629
            btnNot.setText("Not");
630
            btnNot.setMargin(new java.awt.Insets(2, 2, 2, 2));
631
            btnNot.setPreferredSize(new java.awt.Dimension(40, 20));
632
            btnNot.addActionListener(new java.awt.event.ActionListener() {
633
                    public void actionPerformed(java.awt.event.ActionEvent e) {
634
                        putSymbol(" not ");
635
                    }
636
                });
637
        }
628
		return btnMayor;
629
	}
638 630

  
639
        return btnNot;
640
    }
631
	/**
632
	 * This method initializes btnNot
633
	 *
634
	 * @return javax.swing.JButton
635
	 */
636
	private javax.swing.JButton getBtnNot() {
637
		if (btnNot == null) {
638
			btnNot = new javax.swing.JButton();
639
			btnNot.setText("Not");
640
			btnNot.setMargin(new java.awt.Insets(2, 2, 2, 2));
641
			btnNot.setPreferredSize(new java.awt.Dimension(40, 20));
642
			btnNot.addActionListener(new java.awt.event.ActionListener() {
643
					public void actionPerformed(java.awt.event.ActionEvent e) {
644
						putSymbol(" not ");
645
					}
646
				});
647
		}
641 648

  
642
    /**
643
     * This method initializes btnDistinto
644
     *
645
     * @return javax.swing.JButton
646
     */
647
    private javax.swing.JButton getBtnDistinto() {
648
        if (btnDistinto == null) {
649
            btnDistinto = new javax.swing.JButton();
650
            btnDistinto.setText("!=");
651
            btnDistinto.setMargin(new java.awt.Insets(2, 2, 2, 2));
652
            btnDistinto.setPreferredSize(new java.awt.Dimension(40, 20));
653
            btnDistinto.addActionListener(new java.awt.event.ActionListener() {
654
                    public void actionPerformed(java.awt.event.ActionEvent e) {
655
                        putSymbol(" <> ");
656
                    }
657
                });
658
        }
649
		return btnNot;
650
	}
659 651

  
660
        return btnDistinto;
661
    }
652
	/**
653
	 * This method initializes btnDistinto
654
	 *
655
	 * @return javax.swing.JButton
656
	 */
657
	private javax.swing.JButton getBtnDistinto() {
658
		if (btnDistinto == null) {
659
			btnDistinto = new javax.swing.JButton();
660
			btnDistinto.setText("!=");
661
			btnDistinto.setMargin(new java.awt.Insets(2, 2, 2, 2));
662
			btnDistinto.setPreferredSize(new java.awt.Dimension(40, 20));
663
			btnDistinto.addActionListener(new java.awt.event.ActionListener() {
664
					public void actionPerformed(java.awt.event.ActionEvent e) {
665
						putSymbol(" <> ");
666
					}
667
				});
668
		}
662 669

  
663
    /**
664
     * This method initializes btnMenor
665
     *
666
     * @return javax.swing.JButton
667
     */
668
    private javax.swing.JButton getBtnMenor() {
669
        if (btnMenor == null) {
670
            btnMenor = new javax.swing.JButton();
671
            btnMenor.setText("<");
672
            btnMenor.setMargin(new java.awt.Insets(2, 2, 2, 2));
673
            btnMenor.setPreferredSize(new java.awt.Dimension(40, 20));
674
            btnMenor.addActionListener(new java.awt.event.ActionListener() {
675
                    public void actionPerformed(java.awt.event.ActionEvent e) {
676
                        putSymbol(" < ");
677
                    }
678
                });
679
        }
670
		return btnDistinto;
671
	}
680 672

  
681
        return btnMenor;
682
    }
673
	/**
674
	 * This method initializes btnMenor
675
	 *
676
	 * @return javax.swing.JButton
677
	 */
678
	private javax.swing.JButton getBtnMenor() {
679
		if (btnMenor == null) {
680
			btnMenor = new javax.swing.JButton();
681
			btnMenor.setText("<");
682
			btnMenor.setMargin(new java.awt.Insets(2, 2, 2, 2));
683
			btnMenor.setPreferredSize(new java.awt.Dimension(40, 20));
684
			btnMenor.addActionListener(new java.awt.event.ActionListener() {
685
					public void actionPerformed(java.awt.event.ActionEvent e) {
686
						putSymbol(" < ");
687
					}
688
				});
689
		}
683 690

  
684
    /**
685
     * This method initializes btnMayorIgual
686
     *
687
     * @return javax.swing.JButton
688
     */
689
    private javax.swing.JButton getBtnMayorIgual() {
690
        if (btnMayorIgual == null) {
691
            btnMayorIgual = new javax.swing.JButton();
692
            btnMayorIgual.setText(">=");
693
            btnMayorIgual.setMargin(new java.awt.Insets(2, 2, 2, 2));
694
            btnMayorIgual.setPreferredSize(new java.awt.Dimension(40, 20));
695
            btnMayorIgual.addActionListener(new java.awt.event.ActionListener() {
696
                    public void actionPerformed(java.awt.event.ActionEvent e) {
697
                        putSymbol(" >= ");
698
                    }
699
                });
700
        }
691
		return btnMenor;
692
	}
701 693

  
702
        return btnMayorIgual;
703
    }
694
	/**
695
	 * This method initializes btnMayorIgual
696
	 *
697
	 * @return javax.swing.JButton
698
	 */
699
	private javax.swing.JButton getBtnMayorIgual() {
700
		if (btnMayorIgual == null) {
701
			btnMayorIgual = new javax.swing.JButton();
702
			btnMayorIgual.setText(">=");
703
			btnMayorIgual.setMargin(new java.awt.Insets(2, 2, 2, 2));
704
			btnMayorIgual.setPreferredSize(new java.awt.Dimension(40, 20));
705
			btnMayorIgual.addActionListener(new java.awt.event.ActionListener() {
706
					public void actionPerformed(java.awt.event.ActionEvent e) {
707
						putSymbol(" >= ");
708
					}
709
				});
710
		}
704 711

  
705
    /**
706
     * This method initializes btnMenorIgual
707
     *
708
     * @return javax.swing.JButton
709
     */
710
    private javax.swing.JButton getBtnMenorIgual() {
711
        if (btnMenorIgual == null) {
712
            btnMenorIgual = new javax.swing.JButton();
713
            btnMenorIgual.setText("<=");
714
            btnMenorIgual.setMargin(new java.awt.Insets(2, 2, 2, 2));
715
            btnMenorIgual.setPreferredSize(new java.awt.Dimension(40, 20));
716
            btnMenorIgual.addActionListener(new java.awt.event.ActionListener() {
717
                    public void actionPerformed(java.awt.event.ActionEvent e) {
718
                        putSymbol(" <= ");
719
                    }
720
                });
721
        }
712
		return btnMayorIgual;
713
	}
722 714

  
723
        return btnMenorIgual;
724
    }
715
	/**
716
	 * This method initializes btnMenorIgual
717
	 *
718
	 * @return javax.swing.JButton
719
	 */
720
	private javax.swing.JButton getBtnMenorIgual() {
721
		if (btnMenorIgual == null) {
722
			btnMenorIgual = new javax.swing.JButton();
723
			btnMenorIgual.setText("<=");
724
			btnMenorIgual.setMargin(new java.awt.Insets(2, 2, 2, 2));
725
			btnMenorIgual.setPreferredSize(new java.awt.Dimension(40, 20));
726
			btnMenorIgual.addActionListener(new java.awt.event.ActionListener() {
727
					public void actionPerformed(java.awt.event.ActionEvent e) {
728
						putSymbol(" <= ");
729
					}
730
				});
731
		}
725 732

  
726
    /**
727
     * This method initializes btnAnd
728
     *
729
     * @return javax.swing.JButton
730
     */
731
    private javax.swing.JButton getBtnAnd() {
732
        if (btnAnd == null) {
733
            btnAnd = new javax.swing.JButton();
734
            btnAnd.setText("And");
735
            btnAnd.setMargin(new java.awt.Insets(2, 2, 2, 2));
736
            btnAnd.setPreferredSize(new java.awt.Dimension(40, 20));
737
            btnAnd.addActionListener(new java.awt.event.ActionListener() {
738
                    public void actionPerformed(java.awt.event.ActionEvent e) {
739
                        putSymbol(" and ");
740
                    }
741
                });
742
        }
733
		return btnMenorIgual;
734
	}
743 735

  
744
        return btnAnd;
745
    }
736
	/**
737
	 * This method initializes btnAnd
738
	 *
739
	 * @return javax.swing.JButton
740
	 */
741
	private javax.swing.JButton getBtnAnd() {
742
		if (btnAnd == null) {
743
			btnAnd = new javax.swing.JButton();
744
			btnAnd.setText("And");
745
			btnAnd.setMargin(new java.awt.Insets(2, 2, 2, 2));
746
			btnAnd.setPreferredSize(new java.awt.Dimension(40, 20));
747
			btnAnd.addActionListener(new java.awt.event.ActionListener() {
748
					public void actionPerformed(java.awt.event.ActionEvent e) {
749
						putSymbol(" and ");
750
					}
751
				});
752
		}
746 753

  
747
    /**
748
     * This method initializes btnOr
749
     *
750
     * @return javax.swing.JButton
751
     */
752
    private javax.swing.JButton getBtnOr() {
753
        if (btnOr == null) {
754
            btnOr = new javax.swing.JButton();
755
            btnOr.setText("Or");
756
            btnOr.setMargin(new java.awt.Insets(2, 2, 2, 2));
757
            btnOr.setPreferredSize(new java.awt.Dimension(40, 20));
758
            btnOr.addActionListener(new java.awt.event.ActionListener() {
759
                    public void actionPerformed(java.awt.event.ActionEvent e) {
760
                        putSymbol(" or ");
761
                    }
762
                });
763
        }
754
		return btnAnd;
755
	}
764 756

  
765
        return btnOr;
766
    }
757
	/**
758
	 * This method initializes btnOr
759
	 *
760
	 * @return javax.swing.JButton
761
	 */
762
	private javax.swing.JButton getBtnOr() {
763
		if (btnOr == null) {
764
			btnOr = new javax.swing.JButton();
765
			btnOr.setText("Or");
766
			btnOr.setMargin(new java.awt.Insets(2, 2, 2, 2));
767
			btnOr.setPreferredSize(new java.awt.Dimension(40, 20));
768
			btnOr.addActionListener(new java.awt.event.ActionListener() {
769
					public void actionPerformed(java.awt.event.ActionEvent e) {
770
						putSymbol(" or ");
771
					}
772
				});
773
		}
767 774

  
768
    /**
769
     * This method initializes txtExpression
770
     *
771
     * @return javax.swing.JTextArea
772
     */
773
    private javax.swing.JTextArea getTxtExpression() {
774
        if (txtExpression == null) {
775
            txtExpression = new javax.swing.JTextArea();
776
            txtExpression.setLineWrap(true);
777
        }
775
		return btnOr;
776
	}
778 777

  
779
        return txtExpression;
780
    }
778
	/**
779
	 * This method initializes txtExpression
780
	 *
781
	 * @return javax.swing.JTextArea
782
	 */
783
	private javax.swing.JTextArea getTxtExpression() {
784
		if (txtExpression == null) {
785
			txtExpression = new javax.swing.JTextArea();
786
			txtExpression.setLineWrap(true);
787
		}
781 788

  
782
    /**
783
     * This method initializes jPanel5
784
     *
785
     * @return javax.swing.JPanel
786
     */
787
    private javax.swing.JPanel getJPanel5() {
788
        if (jPanel5 == null) {
789
            jPanel5 = new javax.swing.JPanel();
790
            jPanel5.add(getBtnNuevo(), null);
791
            jPanel5.add(getBtnAdd(), null);
792
            jPanel5.add(getBtnFromSet(), null);
793
            jPanel5.setPreferredSize(new java.awt.Dimension(190, 100));
794
        }
789
		return txtExpression;
790
	}
795 791

  
796
        return jPanel5;
797
    }
792
	/**
793
	 * This method initializes jPanel5
794
	 *
795
	 * @return javax.swing.JPanel
796
	 */
797
	private javax.swing.JPanel getJPanel5() {
798
		if (jPanel5 == null) {
799
			jPanel5 = new javax.swing.JPanel();
800
			jPanel5.add(getBtnNuevo(), null);
801
			jPanel5.add(getBtnAdd(), null);
802
			jPanel5.add(getBtnFromSet(), null);
803
			jPanel5.setPreferredSize(new java.awt.Dimension(190, 100));
804
		}
798 805

  
799
    /**
800
     * This method initializes btnNuevo
801
     *
802
     * @return javax.swing.JButton
803
     */
804
    private javax.swing.JButton getBtnNuevo() {
805
        if (btnNuevo == null) {
806
            btnNuevo = new javax.swing.JButton();
807
            btnNuevo.setText(PluginServices.getText(this,"Nuevo_conjunto"));
808
            btnNuevo.setMargin(new java.awt.Insets(2, 2, 2, 2));
809
            btnNuevo.addActionListener(new java.awt.event.ActionListener() {
810
                    public void actionPerformed(java.awt.event.ActionEvent e) {
811
						String expr = "select * from " + model.getDataSourceName() + " where " +
812
						getTxtExpression().getText() + ";";
813
						
806
		return jPanel5;
807
	}
808

  
809
	/**
810
	 * This method initializes btnNuevo
811
	 *
812
	 * @return javax.swing.JButton
813
	 */
814
	private javax.swing.JButton getBtnNuevo() {
815
		if (btnNuevo == null) {
816
			btnNuevo = new javax.swing.JButton();
817
			btnNuevo.setText(PluginServices.getText(this, "Nuevo_conjunto"));
818
			btnNuevo.setMargin(new java.awt.Insets(2, 2, 2, 2));
819
			btnNuevo.addActionListener(new java.awt.event.ActionListener() {
820
					public void actionPerformed(java.awt.event.ActionEvent e) {
821
						final String expr = "select * from " +
822
							model.getDataSourceName() + " where " +
823
							getTxtExpression().getText() + ";";
824

  
814 825
						logger.debug(expr);
815
						
816
                        for (int i = 0; i < expressionListeners.size();
817
                                i++) {
818
                            ExpressionListener l = (ExpressionListener) expressionListeners.get(i);
819
                            l.newSet(expr);
820
                        }
821
                    }
822
                });
823
        }
824 826

  
825
        return btnNuevo;
826
    }
827
						PluginServices.backgroundExecution(new Runnable() {
828
							public void run() {
829
								for (int i = 0; i < expressionListeners.size(); i++) {
830
									ExpressionListener l = (ExpressionListener) expressionListeners.get(i);
831
									l.newSet(expr);
832
								}
833
							}
834
						});
835
					}
836
				});
837
		}
827 838

  
828
    /**
829
     * This method initializes btnAdd
830
     *
831
     * @return javax.swing.JButton
832
     */
833
    private javax.swing.JButton getBtnAdd() {
834
        if (btnAdd == null) {
835
            btnAdd = new javax.swing.JButton();
836
            btnAdd.setText(PluginServices.getText(this,"Anadir_al_conjunto"));
837
            btnAdd.setMargin(new java.awt.Insets(2, 2, 2, 2));
839
		return btnNuevo;
840
	}
841

  
842
	/**
843
	 * This method initializes btnAdd
844
	 *
845
	 * @return javax.swing.JButton
846
	 */
847
	private javax.swing.JButton getBtnAdd() {
848
		if (btnAdd == null) {
849
			btnAdd = new javax.swing.JButton();
850
			btnAdd.setText(PluginServices.getText(this, "Anadir_al_conjunto"));
851
			btnAdd.setMargin(new java.awt.Insets(2, 2, 2, 2));
838 852
			btnAdd.addActionListener(new java.awt.event.ActionListener() {
839 853
					public void actionPerformed(java.awt.event.ActionEvent e) {
840
						String expr = "select * from " + model.getDataSourceName() + " where " +
841
						getTxtExpression().getText() + ";";
842
						
854
						final String expr = "select * from " +
855
							model.getDataSourceName() + " where " +
856
							getTxtExpression().getText() + ";";
857

  
843 858
						logger.debug(expr);
844
						
845
						for (int i = 0; i < expressionListeners.size();
846
								i++) {
847
							ExpressionListener l = (ExpressionListener) expressionListeners.get(i);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff