Package clips.delegate.directory.filtered

Source Code of clips.delegate.directory.filtered.DirectoryCheckupType$TypeSelector

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package clips.delegate.directory.filtered;

import beans.directory.checkuptype.DirectoryCheckupTypeBean;
import beans.directory.checkuptype.DirectoryCheckupTypeBeanRemote;
import beans.directory.checkuptype.entity.CheckupTypeDetails;
import cli_fmw.delegate.directory.DirectoryMagic;
import cli_fmw.delegate.directory.SelectorDirectoryAbstract;
import cli_fmw.delegate.directory.FilteredDirectory;
import cli_fmw.main.ClipsException;
import cli_fmw.utils.SelectorEditableExceptional;
import clips.delegate.directory.simple.speciality.DirectorySpecialityItem;
import framework.beans.directory.DirectoryItemDetails;
import framework.generic.ClipsServerException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author lacoste
*/
public class DirectoryCheckupType
        extends DirectoryMagic<DirectoryCheckupTypeBeanRemote, DirectoryCheckupTypeItem>
        implements FilteredDirectory<DirectoryCheckupTypeItem, DirectorySpecialityItem>{

    private Map<DirectorySpecialityItem, SelectorEditableExceptional<DirectoryCheckupTypeItem>> typeMap;

    public DirectoryCheckupType() throws ClipsException {
        super(DirectoryCheckupTypeBean.class.getSimpleName());
    }
   
    @Override
    public String getDirectoryTitle() {
        return "Типы осмотров";
    }

    @Override
    protected DirectoryCheckupTypeItem createFromLoadedDetails(DirectoryItemDetails details) {
        CheckupTypeDetails d = (CheckupTypeDetails) details;
        return new DirectoryCheckupTypeItem(d);
    }

    @Override
    protected DirectoryCheckupTypeItem createNullItem() {
        CheckupTypeDetails details = new CheckupTypeDetails();
        details.title = "Не указан";
        details.isAnalyse = true;
        return new DirectoryCheckupTypeItem(details);
    }

    @Override
    public SelectorEditableExceptional<DirectoryCheckupTypeItem> getFilteredItems(DirectorySpecialityItem type) throws ClipsException {
        if (typeMap == null){
            typeMap = new HashMap<DirectorySpecialityItem, SelectorEditableExceptional<DirectoryCheckupTypeItem>>();
        }
        if (typeMap.get(type) == null){
            typeMap.put(type, new TypeSelector(type));
        }

        return typeMap.get(type);
    }

    @Override
    protected void removeDB(DirectoryCheckupTypeItem item) throws ClipsException {
        super.removeDB(item);
        typeMap = null;
    }

    private class TypeSelector extends SelectorDirectoryAbstract<DirectoryCheckupTypeItem,
                                                                DirectorySpecialityItem>{

        public TypeSelector(DirectorySpecialityItem filter) {
            super(filter);
        }

        @Override
        protected List<DirectoryCheckupTypeItem> initItems(DirectorySpecialityItem filter) throws ClipsException {
            List<DirectoryCheckupTypeItem> res = new ArrayList<DirectoryCheckupTypeItem>();
            CheckupTypeDetails[] itemDetailsByFilter = getBean().get().getItemDetailsByFilter(filter.getDetails());
            for (CheckupTypeDetails checkupTypeDetails : itemDetailsByFilter) {
                res.add(getItemFromID(checkupTypeDetails.id));
            }
            return res;
        }

        @Override
        public void remove(DirectoryCheckupTypeItem element) throws ClipsException {
            try {
//                System.out.println("Remove \"" + element + " ("+ element.getID() + ")\" from \"" + getFilter() + "\" (" + getFilter().getID() + ")\"");
                getBean().get().removeItemFromFilter(getFilter().getDetails(), element.getDetails());
                getSelectorItems().remove(element);
            } catch (Exception ex) {
                clearBean();
                throw new ClipsException("Не удалось удалить", ex);
            }
        }

        @Override
        protected void appendDB(DirectoryCheckupTypeItem item) throws ClipsException {
            try {
//                System.out.println("Add \"" + item + " ("+ item.getID() + ")\" to \"" + getFilter() + "\" (" + getFilter().getID() + ")\"");
                getBean().get().addItemToFilter(getFilter().getDetails(), item.getDetails());
            } catch (ClipsServerException ex) {
                clearBean();
                throw new ClipsException("Не удалось добавить", ex);
            }
        }
    }

    public boolean isNotUsedInCheckup(DirectoryCheckupTypeItem item) throws ClipsException{
        try {
            return getBean().get().isNotUsedInCheckup(item.getID());
        } catch (Exception ex) {
            clearBean();
            throw new ClipsException("Не удалось получить данные об использовании данного типа в осмотрах", ex);
        }
    }

}
TOP

Related Classes of clips.delegate.directory.filtered.DirectoryCheckupType$TypeSelector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.