Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/efrain-svg/Potes_Freddy_ProgInterfacesG_U3/llms.txt

Use this file to discover all available pages before exploring further.

Contact Management App can export your contacts to a comma-separated values (CSV) file for use in spreadsheet applications, CRM tools, or other address book software. The export always targets the currently visible rows in the table — filters and search terms directly control what ends up in the file.

Running an export

1

Apply filters (optional)

Use the search box and category filter to narrow down which contacts you want to export. Only visible rows are included in the export.
2

Open the export dialog

Click Export CSV in the action bar, press Ctrl+E, or right-click a table row and choose Export visible.
3

Choose a save location

A file chooser dialog opens. Navigate to your desired folder and enter a filename. The .csv extension is added automatically if you omit it.
4

Confirm overwrite (if needed)

If a file with that name already exists, a confirmation dialog appears. Click Yes to overwrite or No to go back and choose a different name.
5

Wait for completion

The status bar shows “Exporting…” while the file is being written, then “Export completed.” when it is done. A success dialog shows the full path to the exported file.

CSV file format

Exported files use a semicolon (;) as the field separator and include a header row:
exported_contacts.csv
Name;Phone;Email;Category;Favorite;Registration date
Ana Garcia;555-1234;[email protected];Family;Yes;2024-01-15
John Smith;555-5678;[email protected];Work;No;2024-02-20
Column headers are translated according to the active UI language at the time of export.
Fields that contain a semicolon, double-quote, or newline character are automatically quoted per RFC 4180 escaping rules to ensure the exported file can be opened correctly in Excel and other tools.

Export and filtering

The export function calls the internal method that collects visible rows:
logica_ventana.java
private List<persona> obtenerContactosVisibles() {
    List<persona> visibles = new ArrayList<persona>();
    synchronized (contactosLock) {
        for (int filaVista = 0; filaVista < delegado.tbl_contactos.getRowCount(); filaVista++) {
            int filaModelo = delegado.tbl_contactos.convertRowIndexToModel(filaVista);
            if (filaModelo >= 0 && filaModelo < contactos.size()) {
                visibles.add(contactos.get(filaModelo));
            }
        }
    }
    return visibles;
}
tbl_contactos.getRowCount() returns only the filtered/visible rows, so hidden contacts are never included.

Background execution

Exports run in a dedicated thread pool (ExecutorService with 2 threads) to avoid freezing the UI. The action buttons are disabled while an export is in progress and re-enabled when it completes.
If you trigger multiple exports in rapid succession, they run concurrently in the thread pool but are synchronized with a lock to prevent file corruption. Wait for the first export to complete before starting another to avoid confusion about which file is being written.

Build docs developers (and LLMs) love