Search in sources :

Example 6 with View

use of org.cytoscape.view.model.View in project cytoscape-impl by cytoscape.

the class LayoutWrapperTask method run.

@Override
public void run(final TaskMonitor taskMonitor) {
    if (network == null)
        network = appMgr.getCurrentNetwork();
    Collection<CyNetworkView> views = viewMgr.getNetworkViews(network);
    nodes = nodeList.getValue();
    for (CyNetworkView view : views) {
        Set<View<CyNode>> nodeViews = new HashSet<View<CyNode>>();
        if (nodes == null || nodes.size() == 0) {
            nodeViews = CyLayoutAlgorithm.ALL_NODE_VIEWS;
        } else {
            for (CyNode node : nodes) nodeViews.add(view.getNodeView(node));
        }
        insertTasksAfterCurrentTask(algorithm.createTaskIterator(view, layoutContext, nodeViews, getLayoutAttribute()));
    }
}
Also used : CyNode(org.cytoscape.model.CyNode) CyNetworkView(org.cytoscape.view.model.CyNetworkView) View(org.cytoscape.view.model.View) CyNetworkView(org.cytoscape.view.model.CyNetworkView) HashSet(java.util.HashSet)

Example 7 with View

use of org.cytoscape.view.model.View in project cytoscape-impl by cytoscape.

the class ControlPanel method updatePanels.

private void updatePanels() {
    final CyApplicationManager appMgr = serviceRegistrar.getService(CyApplicationManager.class);
    final CyNetworkView view = appMgr.getCurrentNetworkView();
    final Collection<View<CyNode>> selectedNodeViews = view != null ? findSelectedNodes(view) : null;
    invokeOnEDT(() -> {
        scalePanel.setEnabled(view != null);
        rotatePanel.setEnabled(view != null);
        final boolean enabled = selectedNodeViews != null && !selectedNodeViews.isEmpty();
        alignPanel.setEnabled(enabled);
        distPanel.setEnabled(enabled);
        stackPanel.setEnabled(enabled);
    });
}
Also used : CyApplicationManager(org.cytoscape.application.CyApplicationManager) CyNetworkView(org.cytoscape.view.model.CyNetworkView) View(org.cytoscape.view.model.View) CyNetworkView(org.cytoscape.view.model.CyNetworkView)

Example 8 with View

use of org.cytoscape.view.model.View 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)

Example 9 with View

use of org.cytoscape.view.model.View in project cytoscape-impl by cytoscape.

the class RowsSetViewUpdater method updateView.

private final void updateView(final RowsSetEvent e) {
    boolean refreshView = false;
    boolean refreshOtherViews = false;
    // Acquire services once to avoid performance overhead of repeated lookup
    final CyApplicationManager applicationManager = serviceRegistrar.getService(CyApplicationManager.class);
    final CyColumnIdentifierFactory columnIdentifierFactory = serviceRegistrar.getService(CyColumnIdentifierFactory.class);
    final CyNetworkViewManager networkViewManager = serviceRegistrar.getService(CyNetworkViewManager.class);
    final VisualMappingManager visualMappingManager = serviceRegistrar.getService(VisualMappingManager.class);
    final RenderingEngine<CyNetwork> renderer = applicationManager.getCurrentRenderingEngine();
    final CyNetwork network = applicationManager.getCurrentNetwork();
    if (network == null)
        return;
    // 1: Update current network view
    final Collection<CyNetworkView> views = networkViewManager.getNetworkViews(network);
    CyNetworkView networkView = null;
    if (views.isEmpty())
        return;
    else
        networkView = views.iterator().next();
    final VisualStyle vs = visualMappingManager.getVisualStyle(networkView);
    Map<CyRow, View<? extends CyIdentifiable>> rowViewMap = tracker.getRowViewMap(networkView);
    for (final RowSetRecord record : e.getPayloadCollection()) {
        final CyRow row = record.getRow();
        final String columnName = record.getColumn();
        final CyColumn column = row.getTable().getColumn(columnName);
        if (column == null)
            continue;
        final VirtualColumnInfo virtualColInfo = column.getVirtualColumnInfo();
        final boolean virtual = virtualColInfo.isVirtual();
        final View<? extends CyIdentifiable> v = rowViewMap.get(row);
        if (v == null)
            continue;
        if (v.getModel() instanceof CyNode) {
            final CyNode node = (CyNode) v.getModel();
            if (network.containsNode(node) && isStyleAffected(vs, columnName, renderer, columnIdentifierFactory)) {
                vs.apply(row, v);
                refreshView = false;
            }
        } else if (v.getModel() instanceof CyEdge) {
            final CyEdge edge = (CyEdge) v.getModel();
            if (network.containsEdge(edge) && isStyleAffected(vs, columnName, renderer, columnIdentifierFactory)) {
                vs.apply(row, v);
                refreshView = false;
            }
        }
        // If virtual, it may be used in other networks.
        if (refreshView && virtual)
            refreshOtherViews = true;
    // if (refreshView)
    // vs.apply(record.getRow(), (View<? extends CyIdentifiable>) v);
    }
    if (refreshView) {
        vs.apply(networkView);
        networkView.updateView();
        if (refreshOtherViews) {
            // Check other views. If update is required, set the flag.
            for (final CyNetworkView view : networkViewManager.getNetworkViewSet()) {
                if (view == networkView)
                    continue;
                final VisualStyle style = visualMappingManager.getVisualStyle(view);
                if (style == vs) {
                    // Same style is in use. Need to apply.
                    netViewMediator.setUpdateFlag(view);
                }
            }
        }
    }
}
Also used : RowSetRecord(org.cytoscape.model.events.RowSetRecord) CyNetworkViewManager(org.cytoscape.view.model.CyNetworkViewManager) CyColumnIdentifierFactory(org.cytoscape.view.presentation.property.values.CyColumnIdentifierFactory) CyColumn(org.cytoscape.model.CyColumn) CyNetwork(org.cytoscape.model.CyNetwork) CyRow(org.cytoscape.model.CyRow) View(org.cytoscape.view.model.View) CyNetworkView(org.cytoscape.view.model.CyNetworkView) CyEdge(org.cytoscape.model.CyEdge) CyApplicationManager(org.cytoscape.application.CyApplicationManager) CyNode(org.cytoscape.model.CyNode) VisualMappingManager(org.cytoscape.view.vizmap.VisualMappingManager) VisualStyle(org.cytoscape.view.vizmap.VisualStyle) VirtualColumnInfo(org.cytoscape.model.VirtualColumnInfo) CyNetworkView(org.cytoscape.view.model.CyNetworkView) CyIdentifiable(org.cytoscape.model.CyIdentifiable)

Example 10 with View

use of org.cytoscape.view.model.View in project cytoscape-impl by cytoscape.

the class VisualStyleTest method runApplyLocal.

private long runApplyLocal(final CyNetworkView largeNetworkView) {
    // Pick 5 random nodes in the network
    final List<View<CyNode>> views = new ArrayList<View<CyNode>>(largeNetworkView.getNodeViews());
    Set<View<CyNode>> targets = new HashSet<View<CyNode>>();
    for (int i = 0; i < 5; i++) {
        double rand = Math.random();
        int index = (int) (NETWORK_SIZE * rand);
        if (index < 0)
            index = 0;
        else if (index > NETWORK_SIZE - 1)
            index = NETWORK_SIZE - 1;
        targets.add(views.get(index));
    }
    // Apply to individual views
    final long start2 = System.currentTimeMillis();
    for (final View<CyNode> view : targets) style.apply(largeNetworkView.getModel().getRow(view.getModel()), view);
    return System.currentTimeMillis() - start2;
}
Also used : ArrayList(java.util.ArrayList) CyNode(org.cytoscape.model.CyNode) View(org.cytoscape.view.model.View) CyNetworkView(org.cytoscape.view.model.CyNetworkView) Paint(java.awt.Paint) HashSet(java.util.HashSet)

Aggregations

CyNetworkView (org.cytoscape.view.model.CyNetworkView)35 View (org.cytoscape.view.model.View)35 CyNode (org.cytoscape.model.CyNode)24 CyEdge (org.cytoscape.model.CyEdge)17 CyNetwork (org.cytoscape.model.CyNetwork)15 ArrayList (java.util.ArrayList)12 HashSet (java.util.HashSet)11 VisualProperty (org.cytoscape.view.model.VisualProperty)8 VisualStyle (org.cytoscape.view.vizmap.VisualStyle)8 List (java.util.List)7 VisualMappingManager (org.cytoscape.view.vizmap.VisualMappingManager)6 HashMap (java.util.HashMap)5 Set (java.util.Set)5 CyEventHelper (org.cytoscape.event.CyEventHelper)5 BasicVisualLexicon (org.cytoscape.view.presentation.property.BasicVisualLexicon)5 Paint (java.awt.Paint)4 CyApplicationManager (org.cytoscape.application.CyApplicationManager)4 CyIdentifiable (org.cytoscape.model.CyIdentifiable)4 VisualLexicon (org.cytoscape.view.model.VisualLexicon)4 Collectors (java.util.stream.Collectors)3