001    package org.kuali.rice.krms.util;
002    
003    import org.kuali.rice.krad.util.ObjectUtils;
004    import org.kuali.rice.krad.web.form.MaintenanceDocumentForm;
005    import org.kuali.rice.krad.web.form.UifFormBase;
006    import org.kuali.rice.krms.dto.AgendaEditor;
007    import org.kuali.rice.krms.dto.RuleEditor;
008    import org.kuali.rice.krms.dto.RuleManagementWrapper;
009    import org.kuali.rice.krms.impl.repository.AgendaItemBo;
010    
011    import java.util.List;
012    
013    /**
014     * Created with IntelliJ IDEA.
015     * User: SW
016     * Date: 2013/04/05
017     * Time: 3:17 PM
018     * To change this template use File | Settings | File Templates.
019     */
020    public class AgendaUtilities {
021    
022        public static RuleEditor retrieveSelectedRuleEditor(UifFormBase form) {
023    
024            MaintenanceDocumentForm document = (MaintenanceDocumentForm) form;
025            RuleManagementWrapper ruleWrapper = (RuleManagementWrapper) document.getDocument().getNewMaintainableObject().getDataObject();
026            String ruleKey = document.getActionParamaterValue("ruleKey");
027    
028            RuleEditor ruleEditor = getSelectedRuleEditor(ruleWrapper, ruleKey);
029    
030            if(ruleEditor != null){
031                ruleWrapper.setRuleEditor((RuleEditor) ObjectUtils.deepCopy(ruleEditor));
032            }else {
033                ruleWrapper.setRuleEditor(new RuleEditor());
034            }
035            ruleWrapper.setSelectedRuleId(ruleWrapper.getRuleEditor().getId());
036    
037            return ruleWrapper.getRuleEditor();
038        }
039    
040        public static RuleEditor getSelectedRuleEditor(RuleManagementWrapper wrapper, String ruleKey) {
041    
042            for (AgendaEditor agendaEditor : wrapper.getAgendas()) {
043                for (RuleEditor ruleEditor : agendaEditor.getRuleEditors()) {
044                    if ((ruleEditor.getKey() != null) && (ruleEditor.getKey().equals(ruleKey))) {
045                        return ruleEditor;
046                    }
047                }
048            }
049    
050            return null;
051        }
052    
053        public static RuleEditor getSelectedRuleEditorByType(List<RuleEditor> ruleEditors, String ruleTypeId) {
054    
055            for (RuleEditor ruleEditor : ruleEditors) {
056                if ((ruleEditor.getTypeId().equals(ruleTypeId))) {
057                    return ruleEditor;
058                }
059            }
060    
061            return null;
062        }
063    }