/**
   * @see
   *     org.apache.portals.bridges.velocity.GenericVelocityPortlet#processAction(javax.portlet.ActionRequest,
   *     javax.portlet.ActionResponse)
   */
  public void processAction(ActionRequest request, ActionResponse actionResponse)
      throws PortletException, IOException {

    String action = request.getParameter(Settings.PARAM_ACTION);
    if (action == null) {
      action = "";
    }

    PortletSession session = request.getPortletSession();

    if (action.equalsIgnoreCase("doOpenPartner")) {
      DisplayTreeNode partnerRoot = (DisplayTreeNode) session.getAttribute("partnerRoot");
      if (partnerRoot != null) {
        DisplayTreeNode node = partnerRoot.getChild(request.getParameter("id"));
        node.setOpen(true);
        if (node.get("checked") != null) {
          Iterator it = node.getChildren().iterator();
          while (it.hasNext()) {
            DisplayTreeNode child = (DisplayTreeNode) it.next();
            child.put("checked", "true");
          }
        }
      }
    } else if (action.equalsIgnoreCase("doClosePartner")) {
      DisplayTreeNode partnerRoot = (DisplayTreeNode) session.getAttribute("partnerRoot");
      if (partnerRoot != null) {
        DisplayTreeNode node = partnerRoot.getChild(request.getParameter("id"));
        node.setOpen(false);
      }
    } else if (action.equalsIgnoreCase("doOriginalSettings")) {
      Principal principal = request.getUserPrincipal();
      IngridPersistencePrefs.setPref(
          principal.getName(), IngridPersistencePrefs.SEARCH_PARTNER, "");
      DisplayTreeNode partnerRoot = (DisplayTreeNode) session.getAttribute("partnerRoot");
      Iterator it = partnerRoot.getChildren().iterator();
      while (it.hasNext()) {
        DisplayTreeNode partnerNode = (DisplayTreeNode) it.next();
        partnerNode.setOpen(false);
        Iterator it2 = partnerNode.getChildren().iterator();
        while (it2.hasNext()) {
          DisplayTreeNode providerNode = (DisplayTreeNode) it2.next();
          providerNode.remove("checked");
        }
      }
    } else {
      // Zur Suchanfrage hinzufuegen
      DisplayTreeNode partnerRoot = (DisplayTreeNode) session.getAttribute("partnerRoot");
      String resultQuery = UtilsSearch.processSearchPartner("", partnerRoot, request);
      Principal principal = request.getUserPrincipal();
      IngridPersistencePrefs.setPref(
          principal.getName(), IngridPersistencePrefs.SEARCH_PARTNER, resultQuery);
    }
  }