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

📄 geolist.java

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

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

import uk.ac.leeds.ccg.geotools.*;
public class GeoList extends java.awt.List implements uk.ac.leeds.ccg.geotools.SelectionChangedListener, ItemListener
{

	private final static boolean DEBUG=true;
    GeoData data;
    SelectionManager sm;
    int indexLUT[];
    public GeoList(GeoData d){
	   if(DEBUG)System.out.println("---->uk.ac.leeds.ccg.widgets.GeoList constructed. Will identify itself as GLs->");
		data = d;
        setMultipleMode(true);
        //sm =s;
        if(DEBUG)System.out.println("GLs->setting up list");
        //sm.addSelectionChangedListener(this);
        indexLUT = new int[d.getSize()];
        Enumeration ids = data.getIds();
        int i=0;
        while(ids.hasMoreElements()){
            int id = ((Integer)ids.nextElement()).intValue();
            indexLUT[i] = id;
            String text = d.getText(id);
            if(DEBUG)System.out.println("GLs->"+text);
            this.add(text);
            i++;
        }
        if(DEBUG)System.out.println("GLs->Done");
        this.addItemListener(this);// listen to myself???
    }
    
    public void setSelectionManager(SelectionManager s){
        sm = s;
        sm.addSelectionChangedListener(this);
    }
    
    public void itemStateChanged(ItemEvent e){
        if(DEBUG)System.out.println("GLs->The selection on the list has changed");
        if(sm!=null){
            sm.setSelection(indexesToIds(getSelectedIndexes()));
        }
    }
    public void selectionChanged(SelectionChangedEvent sce)
    {
       if(DEBUG)System.out.println("GLs->The selection in the selection manager has changed");
       int ids[] = sce.getSelection();
       int indexes[] = idsToIndexes(ids);
       int active[] = this.getSelectedIndexes();
       for(int i=0;i<active.length;i++){
        deselect(active[i]);
       }
       for(int i=0;i<indexes.length;i++){
        select(indexes[i]);
       }
       
       
    }
    
    private int[] indexesToIds(int[] indexes){
        int[] ids = new int[indexes.length];
        for(int i=0;i<indexes.length;i++){
            ids[i] = indexToId(indexes[i]);
        }
        return ids;
    }
    
    private int[] idsToIndexes(int[] ids){
        int[] indexes = new int[ids.length];
        for(int i=0;i<ids.length;i++){
            indexes[i] = idToIndex(ids[i]);
        }
        return indexes;
    }
    
    private int indexToId(int index){
       return this.indexLUT[index];
    }
    
    private int idToIndex(int id){
        for(int i=0;i<indexLUT.length;i++){
            if(indexLUT[i] ==id) return i;
        }
        return -1;
    }

}

⌨️ 快捷键说明

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