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