docs: void importFilter() {
          filterOpenFileChooser.setDialogTitle(L10N.getLocalString("dlg.importFilter_ttl", "Import and merge filter..."));
  
          boolean retry = true;
          File f;
          while (retry) {
              retry = false;
  
              int value = filterOpenFileChooser.showOpenDialog(mainFrame);
  
              if (value != JFileChooser.APPROVE_OPTION) {
                  return;
              }
  
              f = filterOpenFileChooser.getSelectedFile();
  
              if (!f.exists()) {
                  JOptionPane.showMessageDialog(filterOpenFileChooser, "No such file", "Invalid File", JOptionPane.WARNING_MESSAGE);
                  retry = true;
                  continue;
              }
              Filter filter;
              try {
                  filter = Filter.parseFilter(f.getPath());
              } catch (IOException e) {
                  JOptionPane.showMessageDialog(filterOpenFileChooser, "Could not load filter.");
                  retry = true;
                  continue;
              }
              mainFrame.setProjectChanged(true);
              Filter suppressionFilter = mainFrame.getProject().getSuppressionFilter();
  
              for (Matcher m : filter.getChildren()) {
                  suppressionFilter.addChild(m);
              }
  
              PreferencesFrame.getInstance().updateFilterPanel();
          }
  
      }