1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.uif.lifecycle.finalize;
17
18 import org.kuali.rice.krad.uif.component.Component;
19 import org.kuali.rice.krad.uif.component.DataBinding;
20 import org.kuali.rice.krad.uif.lifecycle.ViewLifecycle;
21 import org.kuali.rice.krad.uif.lifecycle.ViewLifecycleTaskBase;
22 import org.kuali.rice.krad.uif.util.LifecycleElement;
23 import org.kuali.rice.krad.uif.view.ViewModel;
24
25
26
27
28
29
30 public class SetReadOnlyOnDataBindingTask extends ViewLifecycleTaskBase<DataBinding> {
31
32
33
34
35 public SetReadOnlyOnDataBindingTask() {
36 super(DataBinding.class);
37 }
38
39
40
41
42 @Override
43 protected void performLifecycleTask() {
44
45 LifecycleElement element = getElementState().getElement();
46 ViewModel viewModel = (ViewModel) ViewLifecycle.getModel();
47 if ((element instanceof DataBinding)
48 && ViewLifecycle.getView().isSupportsRequestOverrideOfReadOnlyFields()
49 && !viewModel.getReadOnlyFieldsList().isEmpty()) {
50 DataBinding dataBinding = (DataBinding) element;
51 String propertyName = dataBinding.getPropertyName();
52 if (viewModel.getReadOnlyFieldsList().contains(propertyName)) {
53 ((Component) dataBinding).setReadOnly(true);
54 }
55 }
56 }
57
58 }