📄 multiselectselectionmodel.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 + -