I also recommend the following restaurants:
Restaurante O Cantinho Algarvio
Rua Afonso de Almeida
Lagos
(The little road running up from the Camara buildng in town towards Rua 25 Abril.)
Restaurante O Pouso de Infante
Rua Afonso de Almeida
Lagos
As regards trains be aware that the Algarve rail line was built over 120 years ago to primarily serve the Agricultural community. In fact the only resorts where it serves seaside towns/beaches are:
Lagos
Portimão (Town/Estuary)(No beach)
Faro (Town/Estuary)(No beach)
Olhão (Town/Estuary)(No beach)
Tavira (Not Cabanas which is several kms from Tavira)
Subsequent stations (some with beach access) to Vila Real do Sta. Antonio. (Town/Estuary)(No beach)
Algarve rail line timetable here:
http://www.cp.pt/StaticFiles/Imagens/PDF/Passageiros/horarios/regionais_2007/vrantonio_lagos.pdf
For Algarve bus info see Cubsur's site:
http://www.algarvebus.info