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

📄 zoomlevelpicker.java

📁 geotools的源码
💻 JAVA
字号:
/*
 * ZoomLevel.java
 *
 * Created on January 24, 2001, 1:31 PM
 */

package uk.ac.leeds.ccg.widgets;

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

/**
 *
 * @author  jamesm
 * @version
 */
public class ZoomLevelPicker extends Choice implements java.io.Serializable, ScaleChangedListener, ItemListener {

	protected final static boolean DEBUG=true;
    protected String sampleProperty;
    protected Viewer view;


		protected double TOL=1.0;
    protected double currentLevel;
    protected double levels[] = {50,100,150,200,400,1000,2000,4000};

    /** Creates new ZoomLevel */
    public ZoomLevelPicker() {
		if(DEBUG)System.out.println("---->uk.ac.leeds.ccg.widgets.ZoomLevelPicker constructed. Will identify itself as ZLP->");
        fillLevelList();
				setCurrentZoomLevel(100.0);
        this.addItemListener(this);
    }
    
    public ZoomLevelPicker(Viewer v){
        this();
        view = v;
        view.scale.addScaleChangedListener(this);
        
    }
    
    public void setViewer(Viewer v){
        if(view!=null && view!=v){
            view.scale.removeScaleChangedListener(this);
        }
        view = v;
    }
    
    private void fillLevelList(){
        removeAll();
        for(int i=0;i<levels.length;i++){
            this.addItem(FormatedString.format(""+levels[i],1));
        }
    }
    
    public void setLevelList(double[] list){
        if(DEBUG)System.out.println("ZLP->Setting new Levels");
        levels = list;
        fillLevelList();
    }

    public double[] getLevelList(){
        return levels;
    }

		public void setTolerance(double t){
			TOL=t;
		}
		public double getTolerance(){
			return TOL;
		}
    public void setCurrentZoomLevel(double percent){

        currentLevel = percent;
				for(int i=0;i<levels.length;i++){
					if(Math.abs(levels[i]-currentLevel)<TOL){
						select(i);
						return;
					}
				}
        select(FormatedString.format(""+currentLevel,1));
				if(this.getItemCount()>levels.length){this.remove(this.getItemCount()-1);}
				String level = FormatedString.format(""+currentLevel,1);
				this.addItem(level);
				this.select(level);
    }





    public void scaleChanged(ScaleChangedEvent sce) {
       this.setCurrentZoomLevel(view.getZoomAsPercent());
    }

    public void itemStateChanged(java.awt.event.ItemEvent p1) {
        double d = new Double(getSelectedItem()).doubleValue();
        if(DEBUG)System.out.println("ZLP->Setting zoom level to "+d);
        if(view!=null){
            view.zoomPercent(d);
        }
    }
    
}

⌨️ 快捷键说明

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