Search in sources :

Example 71 with CyEdge

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

the class HideCommandTask method getResults.

public Object getResults(Class type) {
    List<CyIdentifiable> identifiables = new ArrayList<>();
    if (nodes != null)
        identifiables.addAll(nodes);
    if (edges != null)
        identifiables.addAll(edges);
    if (type.equals(List.class)) {
        return identifiables;
    } else if (type.equals(String.class)) {
        if (identifiables.size() == 0)
            return "<none>";
        String ret = "";
        if (nodes != null && nodes.size() > 0) {
            ret += "Nodes hidden: \n";
            for (CyNode node : nodes) {
                ret += "   " + network.getRow(node).get(CyNetwork.NAME, String.class) + "\n";
            }
        }
        if (edges != null && edges.size() > 0) {
            ret += "Edges hidden: \n";
            for (CyEdge edge : edges) {
                ret += "   " + network.getRow(edge).get(CyNetwork.NAME, String.class) + "\n";
            }
        }
        return ret;
    } else if (type.equals(JSONResult.class)) {
        JSONResult res = () -> {
            if (identifiables == null || identifiables.size() == 0)
                return "{}";
            else {
                CyJSONUtil cyJSONUtil = serviceRegistrar.getService(CyJSONUtil.class);
                String result = "{\"nodes\":";
                if (nodes == null || nodes.size() == 0)
                    result += "[]";
                else
                    result += cyJSONUtil.cyIdentifiablesToJson(nodes);
                result += ", \"edges\":";
                if (edges == null || edges.size() == 0)
                    result += "[]";
                else
                    result += cyJSONUtil.cyIdentifiablesToJson(edges);
                result += "}";
                return result;
            }
        };
        return res;
    }
    return identifiables;
}
Also used : JSONResult(org.cytoscape.work.json.JSONResult) ArrayList(java.util.ArrayList) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge) CyIdentifiable(org.cytoscape.model.CyIdentifiable) CyJSONUtil(org.cytoscape.util.json.CyJSONUtil)

Example 72 with CyEdge

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

the class HideUtils method setVisibleEdges.

static void setVisibleEdges(Collection<CyEdge> edges, boolean visible, CyNetworkView view) {
    for (CyEdge e : edges) {
        final View<CyEdge> ev = view.getEdgeView(e);
        if (visible)
            ev.clearValueLock(EDGE_VISIBLE);
        else {
            ev.setLockedValue(EDGE_VISIBLE, false);
            view.getModel().getRow(ev.getModel()).set(CyNetwork.SELECTED, false);
        }
    }
}
Also used : CyEdge(org.cytoscape.model.CyEdge)

Example 73 with CyEdge

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

the class HideUtils method setVisibleNodes.

static void setVisibleNodes(Collection<CyNode> nodes, boolean visible, CyNetworkView view) {
    final CyNetwork net = view.getModel();
    for (CyNode n : nodes) {
        if (visible)
            view.getNodeView(n).clearValueLock(NODE_VISIBLE);
        else {
            view.getModel().getRow(n).set(CyNetwork.SELECTED, false);
            view.getNodeView(n).setLockedValue(NODE_VISIBLE, false);
        }
        for (CyNode n2 : net.getNeighborList(n, CyEdge.Type.ANY)) {
            for (CyEdge e : net.getConnectingEdgeList(n, n2, CyEdge.Type.ANY)) {
                final View<CyEdge> ev = view.getEdgeView(e);
                if (visible)
                    ev.clearValueLock(EDGE_VISIBLE);
                else {
                    view.getModel().getRow(ev.getModel()).set(CyNetwork.SELECTED, false);
                    ev.setLockedValue(EDGE_VISIBLE, false);
                }
            }
        }
    }
}
Also used : CyNetwork(org.cytoscape.model.CyNetwork) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge)

Example 74 with CyEdge

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

the class AdjacencyTransformer method apply.

@Override
public void apply(CyNetwork network, CyIdentifiable element, TransformerSink<CyIdentifiable> sink) {
    if (action == Action.ADD)
        sink.collect(element);
    if (element instanceof CyNode) {
        CyNode currentNode = (CyNode) element;
        Iterable<CyEdge> adjacentEdges = network.getAdjacentEdgeIterable(currentNode, edgesAre.type());
        Filter<CyNetwork, CyIdentifiable> memoizedFilter = super.getMemoizedFilter();
        for (CyEdge edge : adjacentEdges) {
            CyNode node = otherNode(currentNode, edge);
            boolean pass;
            if (filterTarget == What.NODES) {
                pass = memoizedFilter.accepts(network, node);
            } else if (filterTarget == What.EDGES) {
                pass = memoizedFilter.accepts(network, edge);
            } else {
                // filterTarget == What.NODES_AND_EDGES
                pass = memoizedFilter.accepts(network, node) && memoizedFilter.accepts(network, edge);
            }
            if (pass) {
                if (output == What.NODES || output == What.NODES_AND_EDGES) {
                    sink.collect(node);
                }
                if (output == What.EDGES || output == What.NODES_AND_EDGES) {
                    sink.collect(edge);
                }
            }
        }
    }
}
Also used : CyNetwork(org.cytoscape.model.CyNetwork) CyNode(org.cytoscape.model.CyNode) CyEdge(org.cytoscape.model.CyEdge) CyIdentifiable(org.cytoscape.model.CyIdentifiable)

Example 75 with CyEdge

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

the class RangeSelectionListener method onUserSelection.

/**
 * Indicates that the user has selected a text item within the QuickFind
 * Search Box.
 *
 * @param network the current CyNetwork.
 * @param hit     hit value chosen by the user.
 */
public void onUserSelection(final CyNetwork network, Hit hit) {
    SelectUtil.unselectAllNodes(network);
    SelectUtil.unselectAllEdges(network);
    // Assemble Hit Objects
    final Object[] graphObjects = hit.getAssociatedObjects();
    final List list = new ArrayList();
    for (int i = 0; i < graphObjects.length; i++) {
        list.add(graphObjects[i]);
    }
    // Fit Selected Content
    SwingUtilities.invokeLater(new Runnable() {

        public void run() {
            final CyNetwork cyNetwork = applicationManager.getCurrentNetwork();
            CyNetworkView networkView = applicationManager.getCurrentNetworkView();
            GenericIndex index = quickFind.getIndex(cyNetwork);
            if (index.getIndexType() == QuickFind.INDEX_NODES) {
                SelectUtil.setSelectedNodeState(network, list, true);
                final CyNetworkView currentView = applicationManager.getCurrentNetworkView();
                if (currentView != null)
                    currentView.fitSelected();
            } else {
                SelectUtil.setSelectedEdgeState(network, list, true);
                List<CyNode> nodeList = new ArrayList<CyNode>();
                for (int i = 0; i < list.size(); i++) {
                    CyEdge edge = (CyEdge) list.get(i);
                    CyNode sourceNode = edge.getSource();
                    CyNode targetNode = edge.getTarget();
                    nodeList.add(sourceNode);
                    nodeList.add(targetNode);
                }
                SelectUtil.setSelectedNodeState(network, nodeList, true);
                networkView.fitSelected();
            }
            // so that node does not take up whole screen.
            if (graphObjects.length == 1) {
                if (graphObjects[0] instanceof CyNode) {
                    CyNode node = (CyNode) graphObjects[0];
                    // Obtain dimensions of current InnerCanvas
                    RenderingEngine<CyNetwork> engine = applicationManager.getCurrentRenderingEngine();
                    VisualLexicon lexicon = engine.getVisualLexicon();
                    Double networkWidth = VisualPropertyUtil.get(lexicon, networkView, "NETWORK_WIDTH", BasicVisualLexicon.NETWORK, Double.class);
                    Double networkHeight = VisualPropertyUtil.get(lexicon, networkView, "NETWORK_HEIGHT", BasicVisualLexicon.NETWORK, Double.class);
                    View<CyNode> nodeView = networkView.getNodeView(node);
                    Double nodeWidth = VisualPropertyUtil.get(lexicon, nodeView, "NODE_WIDTH", BasicVisualLexicon.NODE, Double.class);
                    Double nodeHeight = VisualPropertyUtil.get(lexicon, nodeView, "NODE_HEIGHT", BasicVisualLexicon.NODE, Double.class);
                    double width = nodeWidth * NODE_SIZE_MULTIPLER;
                    double height = nodeHeight * NODE_SIZE_MULTIPLER;
                    double scaleFactor = Math.min(networkWidth / width, (networkHeight / height));
                // TODO: How do we set the zoom in the new API?
                // networkView.setZoom(scaleFactor);
                }
            }
            networkView.updateView();
        }
    });
}
Also used : BasicVisualLexicon(org.cytoscape.view.presentation.property.BasicVisualLexicon) VisualLexicon(org.cytoscape.view.model.VisualLexicon) ArrayList(java.util.ArrayList) CyNetwork(org.cytoscape.model.CyNetwork) CyEdge(org.cytoscape.model.CyEdge) View(org.cytoscape.view.model.View) CyNetworkView(org.cytoscape.view.model.CyNetworkView) GenericIndex(org.cytoscape.filter.internal.widgets.autocomplete.index.GenericIndex) RenderingEngine(org.cytoscape.view.presentation.RenderingEngine) ArrayList(java.util.ArrayList) List(java.util.List) CyNode(org.cytoscape.model.CyNode) CyNetworkView(org.cytoscape.view.model.CyNetworkView)

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