private boolean applyFilter(FieldFilter fieldFilter) {
    if (currentModel == null) return false;

    boolean result = false;
    ArrayList filter = (ArrayList) currentModel.getFilter().clone();
    if (fieldFilter != null) filter.add(fieldFilter);

    CustomFilterDialog dialog =
        new CustomFilterDialog(
            frame, filter, currentModel.getTags(), dataDictionary.getDataDictionary());

    dialog.setVisible(true);
    filter = dialog.getFilter();
    if (filter != null) {
      currentModel.filter(filter);
      result = true;
    } else {
      menuBar.undo();
      result = false;
    }
    dialog.dispose();
    return result;
  }