2017-07-12 4 views
2

Je viens de commencer à développer un plugin cytoscape. J'essaie de cacher tous les nœuds qui ont l'instruction "pronaliz: status" dans leur colonne "shared name". J'ai vu le lien ci-dessous et je l'ai essayé mais je n'ai pas pu le faire. Il ne cache aucun noeud.Comment obtenir tous les nœuds avec une valeur spécifique?

http://wiki.cytoscape.org/Cytoscape_3/AppDeveloper/Cytoscape_3_App_Cookbook#How_to_get_all_the_nodes_with_a_specific_attribute_value.3F

Voici mon code. Je suis en train de me réchauffer avec les cours et les méthodes de Cytoscape. Tout le monde peut m'aider s'il vous plaît?

public class MenuAction extends AbstractCyAction { 
private final CyAppAdapter adapter; 

public MenuAction(CyAppAdapter adapter) { 
    super("Hide Status", 
      adapter.getCyApplicationManager(), 
      "network", 
      adapter.getCyNetworkViewManager()); 
    this.adapter = adapter; 
    setPreferredMenu("Select"); 
} 

public void actionPerformed(ActionEvent e){ 
    final CyApplicationManager manager = adapter.getCyApplicationManager(); 
    final CyNetworkView networkView = manager.getCurrentNetworkView(); 
    final CyNetwork network = networkView.getModel(); 
    final CyTable table = network.getDefaultNodeTable(); 

    final Set<CyNode> nodes = new HashSet<CyNode>(); 
    final Collection<CyRow> matchingRows = table.getMatchingRows("shared name", ":status"); 
    final String primaryKeyColname = table.getPrimaryKey().getName(); 

    for (final CyRow row : matchingRows) { 
     final Long nodeId = row.get(primaryKeyColname, Long.class); 
     if (nodeId == null) 
      continue; 
     final CyNode node = network.getNode(nodeId); 
     if (node == null) 
      continue; 
     nodes.add(node); 
    } 

    for(CyNode node: nodes){ 
     networkView.getNodeView(node).setVisualProperty(BasicVisualLexicon.NODE_VISIBLE, false); 
    } 
    networkView.updateView(); 
} 

}

+0

Cette question semble légitime pour moi. Quelqu'un a voté pour fermer la question. Si quelqu'un pense que la question n'est pas claire, faites savoir à tout le monde comment vous pensez que la question pourrait être améliorée. – maxkfranz

Répondre

0

cette question a reçu une réponse du bureau d'assistance Cytoscape: https://groups.google.com/forum/?hl=en_US/#!topic/cytoscape-helpdesk/9ru4Nx0oxvc

Cordialement, Piet

+0

Bien que ce lien puisse répondre à la question, les réponses de lien seulement sont déconseillées sur Stack Overflow, vous pouvez améliorer cette réponse en prenant des parties vitales du lien et en l'insérant dans votre réponse, cela s'assure que votre réponse est toujours une réponse. changé ou enlevé :) – WhatsThePoint