private void applySelectionToNetwork() {
    CyNetwork network = Cytoscape.getCurrentNetwork();
    network.unselectAllNodes();
    network.unselectAllEdges();

    Set<String> selection = new HashSet<String>();
    for (int i : currentTable.getSelectedRows()) {
      selection.add(currentTable.getValueAt(i, 0).toString());
    }

    NetworkData networkData =
        MetScapePlugin.getPluginData().getNetworkData(Networks.getUUID(network));
    if (networkData == null) return;
    NetworkType networkType = networkData.getNetworkType();

    if (networkType == NetworkType.CREG) applySelectionToCREGNetwork(network, selection);
    else if (networkType == NetworkType.COMPOUND_REACTION)
      applySelectionToCRNetwork(network, selection);
    else if (networkType == NetworkType.COMPOUND_GENE)
      applySelectionToCGNetwork(network, selection);
    else if (networkType == NetworkType.COMPOUND)
      applySelectionToCompoundNetwork(network, selection);

    CyNetworkView view = Cytoscape.getNetworkView(network.getIdentifier());
    if (view != null && initialized) view.redrawGraph(true, true);
    else if (!initialized) initialized = true;
  }