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.internal.component;
21
22 import org.apache.myfaces.tobago.component.SupportsHelp;
23 import org.apache.myfaces.tobago.component.SupportsLabelLayout;
24 import org.apache.myfaces.tobago.component.Visual;
25
26 import javax.faces.component.UISelectMany;
27 import javax.faces.component.behavior.ClientBehaviorHolder;
28 import javax.faces.context.FacesContext;
29 import java.util.Collection;
30
31
32
33
34 public abstract class AbstractUISelectManyBase extends UISelectMany
35 implements Visual, SupportsLabelLayout, ClientBehaviorHolder, SupportsHelp {
36
37 private transient boolean nextToRenderIsLabel;
38
39 @Override
40 public Object[] getSelectedValues() {
41 final Object value = getValue();
42 if (value instanceof Collection) {
43 return ((Collection) value).toArray();
44 } else {
45 return (Object[]) value;
46 }
47 }
48
49 public abstract Integer getTabIndex();
50
51 public abstract boolean isDisabled();
52
53 public abstract boolean isReadonly();
54
55 public boolean isError() {
56 final FacesContext facesContext = FacesContext.getCurrentInstance();
57 return !isValid()
58 || !facesContext.getMessageList(getClientId(facesContext)).isEmpty();
59 }
60
61 public abstract boolean isFocus();
62
63 @Override
64 public boolean isNextToRenderIsLabel() {
65 return nextToRenderIsLabel;
66 }
67
68 @Override
69 public void setNextToRenderIsLabel(final boolean nextToRenderIsLabel) {
70 this.nextToRenderIsLabel = nextToRenderIsLabel;
71 }
72 }