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 }