Search in sources :

Example 56 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class SimpleNetwork method removeEdgesInternal.

protected boolean removeEdgesInternal(final Collection<CyEdge> edges) {
    if (edges == null || edges.isEmpty())
        return false;
    boolean madeChanges = false;
    synchronized (lock) {
        for (CyEdge edge : edges) {
            if (!containsEdge(edge))
                continue;
            final EdgePointer e = (EdgePointer) edgePointers.get(edge.getSUID());
            edgePointers.removeKey(edge.getSUID());
            e.remove();
            edgeCount--;
            madeChanges = true;
        }
    }
    return madeChanges;
}
Also used : CyEdge(org.cytoscape.model.CyEdge)

Example 57 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class SimpleNetwork method getEdgeList.

public List<CyEdge> getEdgeList() {
    synchronized (lock) {
        final List<CyEdge> ret = new ArrayList<>(edgeCount);
        EdgePointer edge = null;
        int numRemaining = edgeCount;
        NodePointer node = firstNode;
        while (numRemaining > 0) {
            final CyEdge retEdge;
            if (edge != null) {
                retEdge = edge.cyEdge;
            } else {
                for (edge = node.firstOutEdge; edge == null; node = node.nextNode, edge = node.firstOutEdge) ;
                node = node.nextNode;
                retEdge = edge.cyEdge;
            }
            edge = edge.nextOutEdge;
            numRemaining--;
            ret.add(retEdge);
        }
        return ret;
    }
}
Also used : ArrayList(java.util.ArrayList) CyEdge(org.cytoscape.model.CyEdge)

Example 58 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class ScaleLayouter method scaleGraph.

/**
 * A scaleFactor of 1.0 does not move anything.
 *
 * @exception IllegalArgumentException if
 *   scaleFactor < 0.001 or if scaleFactor > 1000.0.
 */
public void scaleGraph(double scaleFactor, final Direction direction) {
    if ((scaleFactor < 0.001d) || (scaleFactor > 1000.0d))
        throw new IllegalArgumentException("scaleFactor is outside allowable range [0.001, 1000.0]");
    if (m_translationToOrig == null)
        return;
    double xFactor = scaleFactor, yFactor = scaleFactor;
    switch(direction) {
        case X_AXIS_ONLY:
            yFactor = 1.0;
            break;
        case Y_AXIS_ONLY:
            xFactor = 1.0;
            break;
        case BOTH_AXES:
            /* Intentionally empty. */
            break;
    }
    final AffineTransform3D xform = m_translationToOrig.concatenatePost((new Scale3D(xFactor, yFactor, 1.0d)).concatenatePost(m_translationFromOrig));
    for (CyNode node : m_graph.nodes()) {
        if (!m_graph.isMovableNode(node))
            continue;
        m_pointBuff[0] = m_graph.getNodePosition(node, true);
        m_pointBuff[1] = m_graph.getNodePosition(node, false);
        m_pointBuff[2] = 0.0d;
        xform.transformArr(m_pointBuff);
        m_graph.setNodePosition(node, m_pointBuff[0], m_pointBuff[1]);
    }
    for (CyEdge edge : m_graph.edges()) {
        if (!(m_graph.isMovableNode(edge.getSource())) && m_graph.isMovableNode(edge.getTarget()))
            continue;
    /* TODO support anchors
			final int numAnchors = m_graph.getNumAnchors(edge);

			for (int j = 0; j < numAnchors; j++) {
				m_pointBuff[0] = m_graph.getAnchorPosition(edge, j, true);
				m_pointBuff[1] = m_graph.getAnchorPosition(edge, j, false);
				m_pointBuff[2] = 0.0d;
				xform.transformArr(m_pointBuff);
				m_graph.setAnchorPosition(edge, j, m_pointBuff[0], m_pointBuff[1]);
			}
			*/
    }
}
Also used : Scale3D(org.cytoscape.math.xform.Scale3D) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge) AffineTransform3D(org.cytoscape.math.xform.AffineTransform3D)

Example 59 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class CyRootNetworkImpl method addEdge.

@Override
public CyEdge addEdge(final CyNode s, final CyNode t, final boolean directed) {
    final CyEdge edge;
    synchronized (lock) {
        edge = new CyEdgeImpl(SUIDFactory.getNextSUID(), s, t, directed, getNextEdgeIndex());
        addEdgeInternal(s, t, directed, edge);
    }
    return edge;
}
Also used : CyEdge(org.cytoscape.model.CyEdge)

Example 60 with CyEdge

use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.

the class CySubNetworkImpl method copyTableData.

/**
 * This method is called when an edge or a node is added to the networks
 * which is indeed a copy of another edge/node. Hence, it copies all of the
 * default attributes from the shared table referenced to that edge/node to
 * the new edge/node.
 * @param graphObject
 */
private void copyTableData(final CyIdentifiable graphObject) {
    final String name = parent.getRow(graphObject).get(NAME, String.class);
    final CyRow sharedTableRow = parent.getRow(graphObject, CyRootNetwork.SHARED_ATTRS);
    final CyRow defaultTableRow = parent.getRow(graphObject);
    // final String name = parent.getCachedAttributes(graphObject).get(NAME, String.class);
    // final CyRow sharedTableRow = parent.getCachedAttributes(graphObject, CyRootNetwork.SHARED_ATTRS);
    // final CyRow defaultTableRow = parent.getCachedAttributes(graphObject);
    final CyRow targetRow = this.getRow(graphObject);
    // Step 1: Copy shared name as name of this new node
    final String sharedName = sharedTableRow.get(CyRootNetwork.SHARED_NAME, String.class);
    if (sharedName != null)
        targetRow.set(CyNetwork.NAME, sharedName);
    else
        targetRow.set(CyNetwork.NAME, name);
    // Step 2: Copy selection state
    targetRow.set(CyNetwork.SELECTED, defaultTableRow.get(CyNetwork.SELECTED, Boolean.class));
    // Step 3: Copy Interaction if edge
    if (graphObject instanceof CyEdge) {
        final String interaction = sharedTableRow.get(CyRootNetwork.SHARED_INTERACTION, String.class);
        targetRow.set(CyEdge.INTERACTION, interaction);
    }
}
Also used : CyRow(org.cytoscape.model.CyRow) CyEdge(org.cytoscape.model.CyEdge)

Aggregations

CyEdge (org.cytoscape.model.CyEdge)302 CyNode (org.cytoscape.model.CyNode)231 CyNetwork (org.cytoscape.model.CyNetwork)103 ArrayList (java.util.ArrayList)77 Test (org.junit.Test)71 CyNetworkView (org.cytoscape.view.model.CyNetworkView)55 HashSet (java.util.HashSet)42 CyRow (org.cytoscape.model.CyRow)41 CyIdentifiable (org.cytoscape.model.CyIdentifiable)29 HashMap (java.util.HashMap)26 CySubNetwork (org.cytoscape.model.subnetwork.CySubNetwork)25 CyTable (org.cytoscape.model.CyTable)21 DummyCyEdge (org.cytoscape.model.DummyCyEdge)21 VisualStyle (org.cytoscape.view.vizmap.VisualStyle)18 DummyCyNode (org.cytoscape.model.DummyCyNode)17 View (org.cytoscape.view.model.View)16 List (java.util.List)13 CyEventHelper (org.cytoscape.event.CyEventHelper)12 CyGroup (org.cytoscape.group.CyGroup)12 VisualMappingManager (org.cytoscape.view.vizmap.VisualMappingManager)12