1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.event;
21
22 import org.apache.myfaces.tobago.util.ComponentUtils;
23
24 import javax.faces.component.StateHolder;
25 import javax.faces.component.UIComponent;
26 import javax.faces.context.FacesContext;
27 import javax.faces.event.ActionEvent;
28 import java.util.Collection;
29
30 public class ResetInputActionListener extends AbstractResetInputActionListener implements StateHolder {
31
32 private String[] clientIds;
33
34 public ResetInputActionListener() {
35 }
36
37 public ResetInputActionListener(final String[] clientIds) {
38 this.clientIds = clientIds;
39 }
40
41 public ResetInputActionListener(final Collection<String> clientIds) {
42 this.clientIds = clientIds.toArray(new String[0]);
43 }
44
45 @Override
46 public void processAction(final ActionEvent event) {
47 for (final String clientId : clientIds) {
48 final UIComponent component = ComponentUtils.findComponent(event.getComponent(), clientId);
49 if (component != null) {
50 resetChildren(component);
51 }
52 }
53 }
54
55 @Override
56 public boolean isTransient() {
57 return false;
58 }
59
60 @Override
61 public void setTransient(final boolean newTransientValue) {
62
63 }
64
65 @Override
66 public void restoreState(final FacesContext context, final Object state) {
67 final Object[] values = (Object[]) state;
68 clientIds = (String[]) values[0];
69 }
70
71 @Override
72 public Object saveState(final FacesContext context) {
73 final Object[] values = new Object[1];
74 values[0] = clientIds;
75 return values;
76 }
77 }