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

📄 selectionlist.java

📁 geotools的源码
💻 JAVA
字号:
package uk.ac.leeds.ccg.widgets;

import uk.ac.leeds.ccg.geotools.*;
import java.awt.*;
import java.awt.event.*;
import com.sun.java.util.collections.*;

public class SelectionList extends java.awt.List implements SelectionChangedListener,HighlightChangedListener,
ActionListener,ItemListener{

	static final boolean DEBUG=false;
	static final String DBC="SLi->";
	GeoData data;
	HighlightManager hm=null;
	SelectionManager sm=null;
	public Vector idx = new Vector();
	public SelectionList(GeoData data){
		super();
		this.data = data;
		addActionListener(this);
		addItemListener(this);
	}
	public SelectionList(GeoData data,int rows){
		super(rows);
		this.data = data;
		addActionListener(this);
		addItemListener(this);
	}
	public void setGeoData(GeoData d){
		data=d;
	}
	public void setHighlightManager(HighlightManager h){
		hm=h;
		hm.addHighlightChangedListener(this);
	}
	public void setSelectionManager(SelectionManager s){
		sm=s;
		sm.addSelectionChangedListener(this);
	}
	public void highlightChanged(HighlightChangedEvent hce){
		int id = hce.getHighlighted();
		deselect(getSelectedIndex());
		for(int i=0;i<idx.size();i++){
			if(((Integer)idx.elementAt(i)).intValue()==id){
				select(i);
				makeVisible(i);
				return;
			}
		}
	}

	public void selectionChanged(SelectionChangedEvent sce){
		int [] ids = sce.getSelection();
		if(ids.length==0){ 
			clearSelection();
			return;
		}
		if(DEBUG)System.out.print(DBC);
		for(int i=0;i<ids.length;i++){
			if(DEBUG)System.out.print(""+ids[i]+" ");
			if(sce.isSelected(ids[i])&&!idx.contains(new Integer(ids[i]))){
				if(!data.getText(ids[i]).trim().equals("")){
					add(data.getText(ids[i]).trim());
					idx.add(new Integer(ids[i]));
				}
			}
		}
		if(DEBUG)System.out.println("");
		Iterator e = idx.iterator();
		while(e.hasNext()){
			Integer I = (Integer)e.next();
			int i = I.intValue();
				if(!(sce.isSelected(i))){
					remove(data.getText(i).trim());
					e.remove();
				}
		}

	}
	public void clearSelection(){
		removeAll();
		idx=new Vector();
	}
	public void actionPerformed(ActionEvent e){
		if(sm!=null){
			int [] i=new int[1];
			i[0]= ((Integer)idx.elementAt(getSelectedIndex())).intValue();
			sm.clearSelection();
			sm.setSelection(i);
		}
	}
	public void itemStateChanged(ItemEvent e) {
		if(hm!=null){
			hm.setHighlight(((Integer)idx.elementAt(getSelectedIndex())).intValue());
		}
	}
}
	

⌨️ 快捷键说明

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