001    package nl.cwi.sen1.gui.plugin.prefusedot;
002    
003    import java.awt.geom.Rectangle2D;
004    import java.util.Iterator;
005    
006    
007    import prefuse.action.layout.Layout;
008    import prefuse.data.Graph;
009    import prefuse.visual.VisualItem;
010    
011    public class DotNodeLayout extends Layout {
012     
013        public DotNodeLayout(String group) {
014            super(group);
015        }
016    
017        public void run(double frac) {
018            Graph g = (Graph) m_vis.getGroup(m_group);
019            if (g != null) {
020                Iterator<?> nodeIter = g.nodes();
021                while (nodeIter.hasNext()) {
022                    VisualItem node = (VisualItem) nodeIter.next();
023                    double x = node.getInt(DotAdapter.DOT_X);
024                    double y = node.getInt(DotAdapter.DOT_Y);
025                    double w = node.getInt(DotAdapter.DOT_WIDTH);
026                    double h = node.getInt(DotAdapter.DOT_HEIGHT);
027                    
028                    Rectangle2D bounds = (Rectangle2D) node.get(VisualItem.BOUNDS);
029                    bounds.setRect(x, y, w, h);
030                    node.set(VisualItem.BOUNDS,bounds);
031                    
032                    setX(node, null, x);
033                    setY(node, null, y);
034                }
035            }
036        }
037    }