1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.uif.container;
17
18 import org.kuali.rice.krad.datadictionary.parse.BeanTag;
19 import org.kuali.rice.krad.datadictionary.parse.BeanTagAttribute;
20 import org.kuali.rice.krad.datadictionary.parse.BeanTags;
21 import org.kuali.rice.krad.uif.UifConstants;
22 import org.kuali.rice.krad.uif.component.Component;
23 import org.kuali.rice.krad.uif.view.View;
24 import org.kuali.rice.krad.uif.widget.Accordion;
25
26 import java.util.HashSet;
27 import java.util.List;
28 import java.util.Set;
29
30
31
32
33 @BeanTags({@BeanTag(name = "accordionGroup-bean", parent = "Uif-AccordionGroup"),
34 @BeanTag(name = "accordionSection-bean", parent = "Uif-AccordionSection"),
35 @BeanTag(name = "accordionSubSection-bean", parent = "Uif-AccordionSubSection"),
36 @BeanTag(name = "disclosure-accordionSection-bean", parent = "Uif-Disclosure-AccordionSection"),
37 @BeanTag(name = "disclosure-accordionSubSection-bean", parent = "Uif-Disclosure-AccordionSubSection")})
38 public class AccordionGroup extends Group {
39
40 private static final long serialVersionUID = 7230145606607506418L;
41
42 private Accordion accordionWidget;
43
44
45
46
47 @Override
48 public List<Component> getComponentsForLifecycle() {
49 List<Component> components = super.getComponentsForLifecycle();
50
51 components.add(accordionWidget);
52
53 return components;
54 }
55
56
57
58
59
60 @Override
61 public void performFinalize(View view, Object model, Component parent) {
62 super.performFinalize(view, model, parent);
63 this.addDataAttribute(UifConstants.DataAttributes.TYPE, "Uif-AccordionGroup");
64 }
65
66
67
68
69
70
71 @Override
72 public Set<Class<? extends Component>> getSupportedComponents() {
73 Set<Class<? extends Component>> supportedComponents = new HashSet<Class<? extends Component>>();
74 supportedComponents.add(Group.class);
75
76 return supportedComponents;
77 }
78
79
80
81
82
83
84
85 @BeanTagAttribute(name = "accordionWidget", type = BeanTagAttribute.AttributeType.SINGLEBEAN)
86 public Accordion getAccordionWidget() {
87 return this.accordionWidget;
88 }
89
90
91
92
93
94
95 public void setAccordionWidget(Accordion accordionWidget) {
96 this.accordionWidget = accordionWidget;
97 }
98
99
100
101
102 @Override
103 protected <T> void copyProperties(T component) {
104 super.copyProperties(component);
105 AccordionGroup accordionGroupCopy = (AccordionGroup) component;
106
107 if (this.accordionWidget != null) {
108 accordionGroupCopy.setAccordionWidget((Accordion) this.accordionWidget.copy());
109 }
110 }
111 }