1
2 package com.pnpconsult.zeiterfassung.actions.admin;
3
4 import java.io.Serializable;
5 import java.text.ParseException;
6
7 import javax.servlet.http.HttpServletRequest;
8
9 import org.apache.commons.lang.StringUtils;
10 import org.apache.struts.action.ActionErrors;
11 import org.apache.struts.action.ActionMapping;
12
13 import com.pnpconsult.zeiterfassung.actions.EditForm;
14 import com.pnpconsult.zeiterfassung.model.Activity;
15 import com.pnpconsult.zeiterfassung.util.ActionErrorUtils;
16 import com.pnpconsult.zeiterfassung.util.NumberUtils;
17 import com.pnpconsult.zeiterfassung.util.SimpleExpressionParser;
18
19 /***
20 * @author <a href="mailto:powerpete@users.sf.net">M. Petersen</a>
21 * @version $Id: EditActivityForm.java,v 1.4 2004/04/01 08:30:45 powerpete Exp $
22 *
23 * @struts.form
24 * name="editActivityForm"
25 */
26 public class EditActivityForm extends EditForm
27 {
28 private float billingFactor = 1;
29 private long id;
30 private String name;
31 private boolean billingFactorFormatError;
32
33 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
34 {
35 ActionErrors errors = new ActionErrors();
36 if (StringUtils.isBlank(name))
37 {
38 ActionErrorUtils.add(errors, "errors.secure.admin.activity.name");
39 }
40 if (billingFactorFormatError)
41 {
42 ActionErrorUtils.add(errors, "errors.secure.admin.activity.billingFactor_format_error");
43 }
44 return errors;
45 }
46
47 /***
48 * @see com.pnpconsult.zeiterfassung.actions.EditForm#writeToDataObject(java.lang.Object)
49 */
50 protected void writeToDataObject(Object obj)
51 {
52 Activity activity = (Activity) obj;
53 activity.setBillingFactor(billingFactor);
54 activity.setName(name);
55 }
56
57 /***
58 * @see com.pnpconsult.zeiterfassung.actions.EditForm#readFromDataObject(java.lang.Object)
59 */
60 protected void readFromDataObject(Object obj)
61 {
62 Activity activity = (Activity) obj;
63 billingFactor = activity.getBillingFactor();
64 name = activity.getName();
65 }
66
67 /***
68 * @see com.pnpconsult.zeiterfassung.actions.EditForm#newDataObject()
69 */
70 protected Object newDataObject()
71 {
72 return new Activity();
73 }
74
75 /***
76 * @see com.pnpconsult.zeiterfassung.actions.EditForm#dataObjectType()
77 */
78 protected Class dataObjectType()
79 {
80 return Activity.class;
81 }
82
83 /***
84 * @see com.pnpconsult.zeiterfassung.actions.EditForm#dataObjectKey()
85 */
86 protected Serializable dataObjectKey()
87 {
88 return new Long(id);
89 }
90
91 public String getBillingFactor()
92 {
93 return NumberUtils.formatLong(billingFactor);
94 }
95
96 public void setBillingFactor(String str)
97 {
98 try
99 {
100 billingFactor = (float) SimpleExpressionParser.parse(str);
101 }
102 catch (ParseException e)
103 {
104 billingFactorFormatError = true;
105 }
106 }
107
108 public long getId()
109 {
110 return id;
111 }
112
113 public void setId(long id)
114 {
115 this.id = id;
116 }
117
118 public String getName()
119 {
120 return name;
121 }
122
123 public void setName(String name)
124 {
125 this.name = name;
126 }
127
128 }