Revision 1947 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynform/AbeilleJDynForm.java
AbeilleJDynForm.java | ||
---|---|---|
20 | 20 |
import org.gvsig.tools.dynform.spi.DynFormSPIManager; |
21 | 21 |
|
22 | 22 |
import com.jeta.forms.components.panel.FormPanel; |
23 |
import java.awt.event.ActionEvent; |
|
24 |
import java.awt.event.ActionListener; |
|
23 | 25 |
import java.io.File; |
24 | 26 |
import java.util.ArrayList; |
25 | 27 |
import java.util.List; |
... | ... | |
33 | 35 |
import org.apache.commons.io.FilenameUtils; |
34 | 36 |
import org.apache.commons.io.IOUtils; |
35 | 37 |
import org.apache.commons.lang3.StringUtils; |
38 |
import org.gvsig.expressionevaluator.Function; |
|
36 | 39 |
import org.gvsig.tools.dataTypes.CoercionException; |
37 | 40 |
import org.gvsig.tools.dynform.spi.DynFormSPIManager.ComponentsFactory; |
38 | 41 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_ABEILLE_FORM; |
42 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_CLEAR; |
|
43 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ISMODIFIED; |
|
44 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ISREADONLY; |
|
45 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ONFIELDCHANGED; |
|
46 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ONFIELDENTER; |
|
47 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ONFIELDEXIT; |
|
48 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ONLOAD; |
|
49 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_ONSETVALUES; |
|
50 |
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.USERCODE_FORM_VALIDATE; |
|
39 | 51 |
import org.gvsig.tools.dynform.spi.dynform.JDynFormFactory; |
40 | 52 |
import org.gvsig.tools.dynform.spi.dynformfield.AbstractJDynFormField; |
41 | 53 |
import org.gvsig.tools.dynform.spi.dynformfield.JDynFormFieldFactory; |
... | ... | |
79 | 91 |
|
80 | 92 |
private static final String PREFIX_JCHECKBOX = "chk"; |
81 | 93 |
private static final String PREFIX_JLABEL = "lbl"; |
94 |
private static final String PREFIX_DROPDOWN = "lblDdn"; |
|
82 | 95 |
private static final String PREFIX_JCOMBOBOX = "cbo"; |
83 | 96 |
private static final String PREFIX_JSPINNER = "spn"; |
84 | 97 |
private static final String PREFIX_JTEXTFIELD = "txt"; |
... | ... | |
98 | 111 |
String[] prefixes = new String[] { |
99 | 112 |
PREFIX_JCHECKBOX, |
100 | 113 |
PREFIX_JLABEL, |
114 |
PREFIX_DROPDOWN, |
|
101 | 115 |
PREFIX_JCOMBOBOX, |
102 | 116 |
PREFIX_JSPINNER, |
103 | 117 |
PREFIX_JTEXTFIELD, |
... | ... | |
326 | 340 |
LOGGER.warn("Can't load field '"+definition.getName()+"' for abeille form '"+resourceName+"'.", th1); |
327 | 341 |
} |
328 | 342 |
} |
343 |
this.bindUserCode(form); |
|
344 |
this.callUserEvent(USERCODE_FORM_ONLOAD, this); |
|
329 | 345 |
} catch (Throwable th) { |
330 | 346 |
LOGGER.warn("Can't load abeille form '"+resourceName+"'.", th); |
331 | 347 |
} finally { |
... | ... | |
335 | 351 |
|
336 | 352 |
return form; |
337 | 353 |
} |
354 |
|
|
355 |
private void bindUserCode(FormPanel form) { |
|
356 |
for(Function fn : this.getUserFunctions()) { |
|
357 |
String name = fn.name(); |
|
358 |
if( name.endsWith("_click") ) { |
|
359 |
Component c = form.getComponentByName(name.substring(0, name.length()-6)); |
|
360 |
if( c instanceof JButton ) { |
|
361 |
JButton button = (JButton) c; |
|
362 |
final String fnName = fn.name(); |
|
363 |
button.addActionListener(new ActionListener() { |
|
364 |
@Override |
|
365 |
public void actionPerformed(ActionEvent e) { |
|
366 |
callUserEvent(fnName, e); |
|
367 |
} |
|
368 |
}); |
|
369 |
} |
|
370 |
} |
|
371 |
} |
|
372 |
|
|
373 |
} |
|
338 | 374 |
|
339 | 375 |
@Override |
340 | 376 |
public void setValues(DynObject values) { |
... | ... | |
351 | 387 |
LOGGER.warn("Can't set value to field '"+name+"'.",ex); |
352 | 388 |
} |
353 | 389 |
} |
390 |
this.callUserEvent(USERCODE_FORM_ONSETVALUES, this, values); |
|
391 |
if( this.hasUserFunction(USERCODE_FORM_ISREADONLY) ) { |
|
392 |
boolean isReadOnly = false; |
|
393 |
try { |
|
394 |
isReadOnly = (boolean) this.callUserFunction(USERCODE_FORM_ISREADONLY, this, values); |
|
395 |
} catch (Exception ex) { |
|
396 |
} |
|
397 |
if( isReadOnly ) { |
|
398 |
this.setReadOnly(true); |
|
399 |
} |
|
400 |
} |
|
401 |
|
|
354 | 402 |
} |
355 | 403 |
|
356 | 404 |
public Iterable<JDynFormField> getFields() { |
... | ... | |
409 | 457 |
return false; |
410 | 458 |
} |
411 | 459 |
} |
412 |
return true; |
|
460 |
boolean validate = true; |
|
461 |
if( this.hasUserFunction(USERCODE_FORM_VALIDATE) ) { |
|
462 |
try { |
|
463 |
validate = (boolean) this.callUserFunction(USERCODE_FORM_VALIDATE, this); |
|
464 |
} catch (Exception ex) { |
|
465 |
} |
|
466 |
} |
|
467 |
return validate; |
|
413 | 468 |
} |
414 | 469 |
|
415 | 470 |
@Override |
... | ... | |
427 | 482 |
|
428 | 483 |
@Override |
429 | 484 |
public boolean isModified() { |
485 |
if( this.isReadOnly() ) { |
|
486 |
return false; |
|
487 |
} |
|
488 |
if( this.hasUserFunction(USERCODE_FORM_ISMODIFIED) ) { |
|
489 |
try { |
|
490 |
return (boolean) this.callUserFunction(USERCODE_FORM_ISMODIFIED, this); |
|
491 |
} catch (Exception ex) { |
|
492 |
LOGGER.warn("Error calling form_isModified user code",ex); |
|
493 |
} |
|
494 |
} |
|
430 | 495 |
for (JDynFormField jfield : this.getFields()) { |
431 | 496 |
if (jfield.isModified()) { |
432 | 497 |
return true; |
... | ... | |
440 | 505 |
for (JDynFormField jfield : this.getFields()) { |
441 | 506 |
jfield.clear(); |
442 | 507 |
} |
508 |
this.callUserEvent(USERCODE_FORM_CLEAR, this); |
|
443 | 509 |
} |
444 | 510 |
|
445 | 511 |
@Override |
446 | 512 |
public void fieldEnter(JDynFormField field) { |
447 | 513 |
message(field.getDefinition().getDescription()); |
514 |
this.callUserEvent(USERCODE_FORM_ONFIELDENTER, this, field); |
|
448 | 515 |
} |
449 | 516 |
|
450 | 517 |
@Override |
451 | 518 |
public void fieldExit(JDynFormField field) { |
452 | 519 |
message(); |
520 |
this.callUserEvent(USERCODE_FORM_ONFIELDEXIT, this, field); |
|
453 | 521 |
} |
454 | 522 |
|
455 | 523 |
@Override |
456 | 524 |
public void fieldChanged(JDynFormField field) { |
457 | 525 |
fireFieldChangeEvent(field); |
526 |
this.callUserEvent(USERCODE_FORM_ONFIELDCHANGED, this, field); |
|
458 | 527 |
} |
459 | 528 |
|
460 | 529 |
@Override |
Also available in: Unified diff