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

📄 lensset.java

📁 JPowerGraph is a Java library for creating directed graphs for SWT. It supports graph movement, sele
💻 JAVA
字号:
package net.sourceforge.jpowergraph.lens;

import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import net.sourceforge.jpowergraph.pane.JGraphPane;

/**
 * A collection of lenses, where each lens is a function that warps 2D space.
 * This class has been inspired by the <a href="http://www.touchgraph.com/">TouchGraph</a> library.
 */
public class LensSet extends AbstractLens implements LensListener {
    /** The list of lenses. */
    protected List m_lenses;
    private boolean disposed = false;

    /**
     * Creates the lens set.
     */
    public LensSet() {
        m_lenses=new ArrayList();
    }
    /**
     * Adds the lens to the set.
     *
     * @param lens                  the lens added
     */
    public void addLens(Lens lens) {
        m_lenses.add(lens);
        lens.addLensListener(this);
    }
    
    public List getLensOfType(Class theClass){
        List result = new ArrayList();
        for (Iterator i = m_lenses.iterator(); i.hasNext();) {
            Lens l = (Lens) i.next();
            if (l.getClass().equals(theClass)){
                result.add(l);
            }
        }
        return result;
    }
    
    /**
     * Applies the lenses.
     *
     * @param point                 the point
     */
    public void applyLens(JGraphPane theJGraphPane, Point2D point) {
        for (int i=0;i<m_lenses.size();i++) {
            Lens lens=(Lens)m_lenses.get(i);
            lens.applyLens(theJGraphPane, point);
        }
    }
    /**
     * Undoes the lenses.
     *
     * @param point                 the point
     */
    public void undoLens(JGraphPane theJGraphPane, Point2D point) {
        for (int i=m_lenses.size()-1;i>=0;i--) {
            Lens lens=(Lens)m_lenses.get(i);
            lens.undoLens(theJGraphPane, point);
        }
    }
    /**
     * Called whenever the lens changes its parameters.
     *
     * @param lens                      the lens that changed its parameters
     */
    public void lensUpdated(Lens lens) {
        fireLensUpdated();
    }
    
    public void dispose(){
        for (Iterator i = m_lenses.iterator(); i.hasNext();) {
            Lens lens = (Lens) i.next();
            if (!lens.isDisposed()){
                lens.dispose();
            }
        }
        disposed  = true;
    }
    
    public boolean isDisposed(){
        return disposed ;
    }
}

⌨️ 快捷键说明

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