1
2
3
4
5 package org.rcfaces.core.preference;
6
7 import javax.faces.FacesException;
8 import javax.faces.component.UIComponent;
9 import javax.faces.context.FacesContext;
10
11 import org.rcfaces.core.component.CardBoxComponent;
12 import org.rcfaces.core.component.CardComponent;
13 import org.rcfaces.core.component.iterator.ICardIterator;
14
15
16
17
18
19
20 public class CardBoxPreferences extends AbstractComponentPreferences {
21 private static final String REVISION = "$Revision: 1.1 $";
22
23 private static final long serialVersionUID = -8616195336828413449L;
24
25 private String selectedCardId;
26
27 public void loadPreferences(FacesContext facesContext, UIComponent component) {
28 if ((component instanceof CardBoxComponent) == false) {
29 throw new FacesException("Can not load cardBox preferences !");
30 }
31
32 CardBoxComponent cardBoxComponent = (CardBoxComponent) component;
33
34 if (selectedCardId != null) {
35 ICardIterator cardIterator = cardBoxComponent.listCards();
36 for (; cardIterator.hasNext();) {
37 CardComponent cardComponent = cardIterator.next();
38
39 if (selectedCardId.equals(cardComponent.getId()) == false) {
40 continue;
41 }
42
43 cardBoxComponent.select(cardComponent);
44 break;
45 }
46 }
47 }
48
49 public void savePreferences(FacesContext facesContext, UIComponent component) {
50 if ((component instanceof CardBoxComponent) == false) {
51 throw new FacesException("Can not save cardBox preferences !");
52 }
53
54 CardBoxComponent cardBoxComponent = (CardBoxComponent) component;
55
56 selectedCardId = null;
57 CardComponent cardComponent = cardBoxComponent
58 .getSelectedCard(facesContext);
59 if (cardComponent != null) {
60 selectedCardId = cardComponent.getId();
61 }
62 }
63
64 public Object saveState(FacesContext context) {
65 return new Object[] { selectedCardId };
66 }
67
68 public void restoreState(FacesContext context, Object state) {
69 Object p[] = (Object[]) state;
70
71 this.selectedCardId = (String) p[0];
72 }
73
74 }