001 package org.trails.validation;
002
003 import java.util.HashMap;
004 import java.util.Map;
005
006 import org.apache.tapestry.valid.FieldTracking;
007 import org.apache.tapestry.valid.IFieldTracking;
008 import org.apache.tapestry.valid.RenderString;
009 import org.apache.tapestry.valid.ValidationDelegate;
010
011 public class TrailsValidationDelegate extends ValidationDelegate
012 {
013
014 public void record(Exception ex)
015 {
016 FieldTracking tracking = findCurrentTracking();
017 tracking.setErrorRenderer(new RenderString(ex.getMessage()));
018 }
019
020 public IFieldTracking getFieldTracking(String displayName)
021 {
022 if (_trackingsByDisplayName.containsKey(displayName))
023 {
024 return _trackingsByDisplayName.get(displayName);
025 } else
026 {
027 return findCurrentTracking();
028 }
029 }
030
031 protected Map<String, IFieldTracking> _trackingsByDisplayName = new HashMap<String, IFieldTracking>();
032
033 @Override
034 public void recordFieldInputValue(String input)
035 {
036 super.recordFieldInputValue(input);
037 FieldTracking tracking = findCurrentTracking();
038 tracking.setInput(input);
039 _trackingsByDisplayName.put(tracking.getComponent().getDisplayName(), tracking);
040 }
041 }