public JCRSList() {

    // obtain the factory only for epsg codes
    //        String authority = "EPSG";
    //        this.factory = FallbackAuthorityFactory.create(CRSAuthorityFactory.class,
    //             filter(AuthorityFactoryFinder.getCRSAuthorityFactories(null), authority));

    this.factory = CRS.getAuthorityFactory(Boolean.FALSE);

    try {
      this.codeList = new CodeList(factory, CoordinateReferenceSystem.class);
      liste.setModel(codeList);
    } catch (FactoryException e) {
      e.printStackTrace();
    }

    liste.getSelectionModel().setSelectionMode(liste.getSelectionModel().SINGLE_SELECTION);

    setLayout(new GridLayout());
    add(BorderLayout.CENTER, new JScrollPane(liste));

    liste
        .getSelectionModel()
        .addListSelectionListener(
            new ListSelectionListener() {

              @Override
              public void valueChanged(ListSelectionEvent e) {
                int index = e.getFirstIndex();

                if (index >= 0) {
                  try {
                    selectedCRS = (CoordinateReferenceSystem) getSelectedItem();
                  } catch (FactoryException ex) {
                    ex.printStackTrace();
                  }
                }
              }
            });
  }