Package prefuse.visual

Examples of prefuse.visual.NodeItem


    }

    private Point2D getPoint(NodeItem n, boolean start) {
        // find the visible ancestor
        NodeItem p = (NodeItem)n.getParent();
        if ( start )
            for (; p!=null && !p.isStartVisible(); p=(NodeItem)p.getParent());
        else
            for (; p!=null && !p.isEndVisible(); p=(NodeItem)p.getParent());
        if ( p == null ) {
            m_point.setLocation(n.getX(), n.getY());
            return m_point;
        }
       
        // get the vanishing/appearing point
        double x = start ? p.getStartX() : p.getEndX();
        double y = start ? p.getStartY() : p.getEndY();
        Rectangle2D b = p.getBounds();
        switch ( m_orientation ) {
        case Constants.ORIENT_LEFT_RIGHT:
            m_point.setLocation(x+b.getWidth(), y);
            break;
        case Constants.ORIENT_RIGHT_LEFT:
View Full Code Here


    /**
     * @see prefuse.action.Action#run(double)
     */
    public void run(double frac) {
        // setup
        NodeItem root = getLayoutRoot();
        Rectangle2D b = getLayoutBounds();
        m_r.setRect(b.getX(), b.getY(), b.getWidth()-1, b.getHeight()-1);
       
        // process size values
        computeAreas(root);
       
        // layout root node
        setX(root, null, 0);
        setY(root, null, 0);       
        root.setBounds(0, 0, m_r.getWidth(), m_r.getHeight());

        // layout the tree
        updateArea(root, m_r);
        layout(root, m_r);
    }
View Full Code Here

        nodes.addColumns(AREA_SCHEMA);
       
        // reset all sizes to zero
        Iterator iter = new TreeNodeIterator(root);
        while ( iter.hasNext() ) {
            NodeItem n = (NodeItem)iter.next();
            n.setDouble(AREA, 0);
        }
       
        // set raw sizes, compute leaf count
        iter = new TreeNodeIterator(root, false);
        while ( iter.hasNext() ) {
            NodeItem n = (NodeItem)iter.next();
            double area = 0;
            if ( n.getChildCount() == 0 ) {
              area = n.getSize();
              ++leafCount;
            } else if ( n.isExpanded() ) {
              NodeItem c = (NodeItem)n.getFirstChild();
              for (; c!=null; c = (NodeItem)c.getNextSibling()) {
                area += c.getDouble(AREA);
                ++leafCount;
              }
            }
            n.setDouble(AREA, area);
           
        }
       
        // scale sizes by display area factor
        Rectangle2D b = getLayoutBounds();
        double area = (b.getWidth()-1)*(b.getHeight()-1);
        double scale = area/root.getDouble(AREA);
        iter = new TreeNodeIterator(root);
        while ( iter.hasNext() ) {
            NodeItem n = (NodeItem)iter.next();
            n.setDouble(AREA, n.getDouble(AREA)*scale);
        }
    }
View Full Code Here

        m_kids.clear(); // clear m_kids
       
        // recurse
        childIter = p.children();
        while ( childIter.hasNext() ) {
            NodeItem c = (NodeItem)childIter.next();
            if ( c.getChildCount() > 0 && c.getDouble(AREA) > 0 ) {
                updateArea(c,r);
                layout(c, r);
            }
        }
    }
View Full Code Here

        double t = A/s;
       
        // re-normalize children areas
        childIter = n.children();
        while ( childIter.hasNext() ) {
            NodeItem c = (NodeItem)childIter.next();
            c.setDouble(AREA, c.getDouble(AREA)*t);
        }
       
        // set bounding rectangle and return
        r.setRect(b.getX()+m_frame,       b.getY()+m_frame,
                  b.getWidth()-2*m_frame, b.getHeight()-2*m_frame);
 
View Full Code Here

        boolean horiz = (w == r.getWidth());
       
        // set node positions and dimensions
        rowIter = row.iterator();
        while ( rowIter.hasNext() ) {
            NodeItem n = (NodeItem)rowIter.next();
            NodeItem p = (NodeItem)n.getParent();
            if ( horiz ) {
                setX(n, p, x+d);
                setY(n, p, y);
            } else {
                setX(n, p, x);
View Full Code Here

        }
        if ( m_edgeGroup != null ) {
            iter = m_vis.visibleItems(m_edgeGroup);
            while ( iter.hasNext() ) {
                EdgeItem  e  = (EdgeItem)iter.next();
                NodeItem  n1 = e.getSourceItem();
                ForceItem f1 = (ForceItem)n1.get(FORCEITEM);
                NodeItem  n2 = e.getTargetItem();
                ForceItem f2 = (ForceItem)n2.get(FORCEITEM);
                float coeff = getSpringCoefficient(e);
                float slen = getSpringLength(e);
                fsim.addSpring(f1, f2, (coeff>=0?coeff:-1.f), (slen>=0?slen:-1.f));
            }
        }
View Full Code Here

       
        Point2D a = getLayoutAnchor();
        m_ax = a.getX();
        m_ay = a.getY();
       
        NodeItem root = getLayoutRoot();
        Params rp = getParams(root);

  g.getSpanningTree(root);
       
        // do first pass - compute breadth information, collect depth info
View Full Code Here

        updateDepths(depth, n);
       
        boolean expanded = n.isExpanded();
        if ( n.getChildCount() == 0 || !expanded ) // is leaf
        {
            NodeItem l = (NodeItem)n.getPreviousSibling();
            if ( l == null ) {
                np.prelim = 0;
            } else {
                np.prelim = getParams(l).prelim + spacing(l,n,true);
            }
        }
        else if ( expanded )
        {
            NodeItem leftMost = (NodeItem)n.getFirstChild();
            NodeItem rightMost = (NodeItem)n.getLastChild();
            NodeItem defaultAncestor = leftMost;
            NodeItem c = leftMost;
            for ( int i=0; c != null; ++i, c = (NodeItem)c.getNextSibling() )
            {
                firstWalk(c, i, depth+1);
                defaultAncestor = apportion(c, defaultAncestor);
            }
           
            executeShifts(n);
           
            double midpoint = 0.5 *
                (getParams(leftMost).prelim + getParams(rightMost).prelim);
           
            NodeItem left = (NodeItem)n.getPreviousSibling();
            if ( left != null ) {
                np.prelim = getParams(left).prelim + spacing(left, n, true);
                np.mod = np.prelim - midpoint;
            } else {
                np.prelim = midpoint;
View Full Code Here

            }
        }
    }
   
    private NodeItem apportion(NodeItem v, NodeItem a) {       
        NodeItem w = (NodeItem)v.getPreviousSibling();
        if ( w != null ) {
            NodeItem vip, vim, vop, vom;
            double   sip, sim, sop, som;
           
            vip = vop = v;
            vim = w;
            vom = (NodeItem)vip.getParent().getFirstChild();
           
            sip = getParams(vip).mod;
            sop = getParams(vop).mod;
            sim = getParams(vim).mod;
            som = getParams(vom).mod;
           
            NodeItem nr = nextRight(vim);
            NodeItem nl = nextLeft(vip);
            while ( nr != null && nl != null ) {
                vim = nr;
                vip = nl;
                vom = nextLeft(vom);
                vop = nextRight(vop);
View Full Code Here

TOP

Related Classes of prefuse.visual.NodeItem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.