private void refreshPathwayListForCurrentNetwork() {
    Set<String> selectedPathwaySet = new HashSet<String>();
    for (int i : currentTable.getSelectedRows())
      selectedPathwaySet.add(currentTable.getValueAt(i, 0).toString());
    currentModel.setRowCount(0);

    SortedSet<String> pathwaySet;
    CyNetwork network = Cytoscape.getCurrentNetwork();
    NetworkData networkData =
        MetScapePlugin.getPluginData().getNetworkData(Networks.getUUID(network));
    NetworkType networkType = null;
    if (networkData != null) networkType = networkData.getNetworkType();

    if (networkType == NetworkType.COMPOUND_REACTION
        || networkType == NetworkType.CREG) { // for C-R and C-R-E-G
      pathwaySet = getPathwaySetFromReactionNodes(network);
    } else if (networkType == NetworkType.COMPOUND) {
      pathwaySet = getPathwaySetFromReactionEdges(network);
    } else if (networkType == NetworkType.COMPOUND_GENE) {
      pathwaySet = getPathwaySetFromEnzymeReactionEdges(network);
    } else {
      pathwaySet = new TreeSet<String>();
    }
    for (String pathway : pathwaySet) {
      currentModel.addRow(new Object[] {pathway});
      if (selectedPathwaySet.contains(pathway))
        currentTable.addRowSelectionInterval(
            currentTable.getRowCount() - 1, currentTable.getRowCount() - 1);
    }
    applySelectionToNetwork();
  }