⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logicaladdfilter.java

📁 geotools的源码
💻 JAVA
字号:
/*
 * AddFilter.java
 *
 * Created on 21 June 2001, 09:21
 */

package uk.ac.leeds.ccg.geotools;

/**
 *
 * @author  James Macgill
 * @version
 */
public class LogicalAddFilter extends uk.ac.leeds.ccg.geotools.SimpleFilter implements FilterChangedListener{
    Filter[] filters;
    /** Creates new AddFilter
     * All of the filters in the array must return true if the AddFilter is to return true.
     * For best performance, place the filters most likely to return false first in the array.
     * @param filters An array of filters to add together.
     **/
    public LogicalAddFilter(Filter[] filters) {
        this.filters = filters;
        for(int i=0;i<filters.length;i++){
            filters[i].addFilterChangedListener(this);
        }
    }
    
    public void setFilters(Filter[] f){
        if(filters!=null){
            for(int i=0;i<filters.length;i++){
                filters[i].removeFilterChangedListener(this);
            }
        }
        filters = f;
        for(int i=0;i<filters.length;i++){
            filters[i].addFilterChangedListener(this);
        }
        this.notifyFilterChangedListeners(FilterChangedEvent.DATA);
    }
        
    public Filter[] getFilters(){
        return filters;
    }
    
        /**
         * Check the given id against the filter,
         * @return boolean returns as true if features with this id should be included in any displays
         */
        public boolean isVisible(int id) {
            if(filters.length==0)return true;
            for(int i=0;i<filters.length;i++){
                if(!filters[i].isVisible(id)){
                    return false;
                }
            }
            //All of the filters must have returned true, so...
            return true;
        }
        
        public void filterChanged(FilterChangedEvent ce) {
            notifyFilterChangedListeners(ce.getReason());
        }
        
        public String getHeader(){
            String row = "";
             row+=filters[0].getHeader();
            for(int i=1;i<filters.length;i++){
               row+=","+filters[i].getHeader();
            }
            return row;
        }
        
        public String getAsRow(){
            String row = "";
            row+=filters[0].getAsRow();
            for(int i=1;i<filters.length;i++){
               row+=","+filters[i].getAsRow();
            }
            return row;
        }
        
        public String toString(){
            String desc = "LAF: ";
            for(int i=0;i<filters.length;i++){
               desc+=filters[i].toString();
            }
            return desc;
        }
        
        //shallow clone
        public Object clone(){
            return new LogicalAddFilter(filters);
        }
    
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -