@Override
  public void actionPerformed(ActionEvent e) {
    Extension cypherExt = getPlugin().getInteractor().supportsExtension("cypher");

    ExtensionExecutor exec = new CypherExtExec();

    exec.setPlugin(plugin);
    exec.setExtension(cypherExt);

    if (!exec.collectParameters()) {
      JOptionPane.showMessageDialog(
          plugin.getCySwingApplication().getJFrame(),
          "Failed to collect parameters for " + cypherExt.getName());
      return;
    }

    List<ExtensionCall> calls = exec.buildExtensionCalls();

    for (ExtensionCall call : calls) {
      Object callRetValue = plugin.getInteractor().executeExtensionCall(call, false);
      exec.processCallResponse(call, callRetValue);
    }
  }
  @Override
  public void actionPerformed(ActionEvent e) {

    Extension forceAtlas2LayoutExt = getPlugin().getInteractor().supportsExtension("forceatlas2");

    ForceAtlas2LayoutExtExec exec = new ForceAtlas2LayoutExtExec();
    exec.setPlugin(plugin);
    exec.setExtension(forceAtlas2LayoutExt);

    ForceAtlas2ExecutionTaskFactory factory = new ForceAtlas2ExecutionTaskFactory(exec);
    do {
      if (!exec.collectParameters()) {
        JOptionPane.showMessageDialog(
            plugin.getCySwingApplication().getJFrame(),
            "Failed to collect parameters for " + forceAtlas2LayoutExt.getName());
        return;
      }

      TaskIterator it = factory.createTaskIterator();
      plugin.getDialogTaskManager().execute(it);

    } while (exec.doContinue());
  }