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

📄 multiselectselectionmodel.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
/*
 *  SSL-Explorer
 *
 *  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
 *
 *  This program is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU General Public License
 *  as published by the Free Software Foundation; either version 2 of
 *  the License, or (at your option) any later version.
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public
 *  License along with this program; if not, write to the Free Software
 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
			
package com.sslexplorer.input;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.struts.util.LabelValueBean;

import com.sslexplorer.boot.PropertyList;

public class MultiSelectSelectionModel {
    private List availableValues;
    private List selectedValues;
    private Map availableMap;
    private MultiSelectDataSource dataSource;
    private PropertyList propertyList;

    public MultiSelectSelectionModel(MultiSelectDataSource dataSource, PropertyList propertyList) {
        super();
        this.dataSource = dataSource;
        this.propertyList = propertyList;
        rebuild();
    }
    
    public void selectAll() {
        for(Iterator i = availableValues.iterator(); i.hasNext(); ) {
            propertyList.add(((LabelValueBean)i.next()).getValue());
        }
        rebuild();
    }
    
    public boolean contains(String value) {
        return available(value) || selected(value);
    }
    
    public boolean available(String value) {
        for(Iterator i = availableValues.iterator(); i.hasNext(); ) {
            if(((LabelValueBean)i.next()).getValue().equals(value)) {
                return true;
            }
        }
        return false;        
    }
    
    public boolean selected(String value) {
        for(Iterator i = selectedValues.iterator(); i.hasNext(); ) {
            if(((LabelValueBean)i.next()).getValue().equals(value)) {
                return true;
            }
        }
        return false;        
    }
    
    public void rebuild() {
        availableValues = dataSource.getValues();
        selectedValues = new ArrayList();
        availableMap = new HashMap();
        for(Iterator i = availableValues.iterator(); i.hasNext(); ) {
            LabelValueBean lvb = (LabelValueBean)i.next();
            availableMap.put(lvb.getValue(), lvb);
        }
        for(Iterator i = propertyList.iterator(); i.hasNext(); ) {
            String v = (String)i.next();
            LabelValueBean lvb = (LabelValueBean)availableMap.get(v);
            if(lvb != null) {
                selectedValues.add(lvb);
                availableValues.remove(lvb);
                availableMap.remove(lvb.getValue());
            }
        }
    }

    public String getAsPropertyText() {
        StringBuffer buf = new StringBuffer();
        for (Iterator i = selectedValues.iterator(); i.hasNext();) {
            LabelValueBean lvb = (LabelValueBean)i.next();
            if (buf.length() > 0) {
                buf.append("!");
            }
            buf.append(lvb.getValue().replaceAll("\\!", "!!"));
        }
        return buf.toString();
    }
    
    public List getAvailableValues() {
        return availableValues;
    }
    
    public List getSelectedValues() {
        return selectedValues;
    }
}

⌨️ 快捷键说明

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