public String processDrop(DropEvent ev) {
    String sTableClassifier = (String) ev.getDropValue();
    FacesContext context = FacesContext.getCurrentInstance();
    // from the list of all available metrics (name in all available metrics must be unique)
    String sDroppedMetricName =
        context.getExternalContext().getRequestParameterMap().get("droppedMetricName").toString();
    String sType = this.mapMetricNameType.get(sDroppedMetricName);

    List<MetricBean> lMT = null;
    UIComponent uiParent = null;
    // for classification 'very good'
    if (sTableClassifier.equals("tableVeryGood")) {
      lMT = lVeryGoodMT;
      uiParent = this.getComponent("pConfigVeryGood");
    }
    if (sTableClassifier.equals("tableGood")) {
      lMT = lVeryGoodMT;
      uiParent = this.getComponent("pConfigGood");
    }
    if (sTableClassifier.equals("tableBad")) {
      lMT = lBadMT;
      uiParent = this.getComponent("pConfigBad");
    }
    if (sTableClassifier.equals("tableVeryBad")) {
      lMT = lVeryBadMT;
      uiParent = this.getComponent("pConfigVeryBad");
    }

    // check the rules if this metric may be added for the table
    if (helperMetricNameAddable(sDroppedMetricName, lMT)) {
      // create a new (gui) metric bean. an auto-id is being created
      MetricBean m = new MetricBean(sDroppedMetricName, sType);
      // add this bean for being the element that's configured
      this.mbToConfigure = m;
      // create the used config UI components as selectors, dropdown boxes, etc.
      helperCreateUICompsForMetricConfig(m, uiParent);
    }

    return "reload-page";
  }