@UiHandler(value = "newFilterListBox")
  public void onNewFilterSelected(ChangeEvent changeEvent) {
    int selectedIdx = newFilterListBox.getSelectedIndex();
    if (selectedIdx > 0) {
      String columnId = metadata.getColumnId(selectedIdx - 1);
      ColumnType columnType = metadata.getColumnType(selectedIdx - 1);
      CoreFunctionFilter columnFilter =
          FilterFactory.createCoreFunctionFilter(
              columnId,
              columnType,
              ColumnType.DATE.equals(columnType)
                  ? CoreFunctionType.TIME_FRAME
                  : CoreFunctionType.NOT_EQUALS_TO);

      if (filter == null) filter = new DataSetFilter();
      filter.addFilterColumn(columnFilter);

      ColumnFilterEditor columnFilterEditor = new ColumnFilterEditor();
      columnFilterEditor.init(metadata, columnFilter, this);
      columnFilterEditor.expand();
      filterListPanel.add(columnFilterEditor);

      newFilterListBox.setSelectedIndex(0);
      addFilterPanel.setVisible(false);
      addFilterButton.setVisible(true);

      columnFilterChanged(columnFilterEditor);
    }
  }
  public void columnFilterDeleted(ColumnFilterEditor editor) {
    addFilterButton.setVisible(true);
    addFilterPanel.setVisible(false);
    filterListPanel.remove(editor);

    Integer index = filter.getColumnFilterIdx(editor.getFilter());
    if (index != null) {
      filter.getColumnFilterList().remove(index.intValue());

      if (listener != null) {
        listener.filterChanged(filter);
      }
    }
  }