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  }