001    /**
002     * Copyright 2004-2014 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.kpme.pm.util;
017    
018    import java.util.ArrayList;
019    import java.util.List;
020    import java.util.Map;
021    
022    import org.kuali.kpme.pm.PMConstants;
023    import org.kuali.kpme.pm.classification.qual.ClassificationQualification;
024    import org.kuali.kpme.pm.pstnqlfrtype.PstnQlfrType;
025    import org.kuali.kpme.pm.service.base.PmServiceLocator;
026    import org.kuali.rice.core.api.util.ConcreteKeyValue;
027    import org.kuali.rice.core.api.util.KeyValue;
028    import org.kuali.rice.krad.uif.control.UifKeyValuesFinderBase;
029    import org.kuali.rice.krad.uif.view.ViewModel;
030    import org.kuali.rice.krad.web.form.MaintenanceDocumentForm;
031    
032    public class PositionClassQualifierKeyValueFinder extends UifKeyValuesFinderBase{
033            private static final long serialVersionUID = 1L;
034    
035            @Override
036            public List<KeyValue> getKeyValues() {
037                    List<KeyValue> keyValues = new ArrayList<KeyValue>();
038                    for (Map.Entry entry : PMConstants.PSTN_CLSS_QLFR_VALUE_MAP.entrySet()) {
039                keyValues.add(new ConcreteKeyValue((String) entry.getKey(), (String) entry.getValue()));
040            }            
041                    return keyValues;
042            }
043    
044            @Override
045        public List<KeyValue> getKeyValues(ViewModel model) {
046                    MaintenanceDocumentForm docForm = (MaintenanceDocumentForm) model;
047                    List<KeyValue> options = new ArrayList<KeyValue>();
048    
049                    ClassificationQualification aQualification = (ClassificationQualification) docForm.getNewCollectionLines().get("document.newMaintainableObject.dataObject.qualificationList");
050                    if(aQualification != null) {
051                            String aTypeId = aQualification.getQualificationType();
052                            PstnQlfrType aTypeObj = PmServiceLocator.getPstnQlfrTypeService().getPstnQlfrTypeById(aTypeId);
053                            if(aTypeObj != null) {
054                                    if(aTypeObj.getTypeValue().equals(PMConstants.PSTN_QLFR_TEXT)
055                                                    || aTypeObj.getTypeValue().equals(PMConstants.PSTN_QLFR_SELECT)) {
056                                             options.add(new ConcreteKeyValue(PMConstants.PSTN_CLSS_QLFR_VALUE.EQUAL, PMConstants.PSTN_CLSS_QLFR_VALUE_MAP.get(PMConstants.PSTN_CLSS_QLFR_VALUE.EQUAL)));
057                                    } else if(aTypeObj.getTypeValue().equals(PMConstants.PSTN_QLFR_NUMBER)){
058                                            options = this.getKeyValues();
059                                    }
060                            }
061                            
062                    }
063                    
064            return options;
065        }
066    }