Long time no blog…
I’ve been busy lately working on adding a UI extension to Libgda: merging the good parts of Libgnomedb and Mergeant (which have not been kept up to date) into Libgda. This new UI “extension” will remain optional (built only if GTK+ is found) and includes:
- some data bound widgets (grid anf form views)
- some “administrative” widgets such as a login widget to enter credentials when opening a connection
- a reworked control center where one can manage named data sources (DSN) and check the list of installed database providers (drivers)
- a re-write of the browser tool usefull to analyse the structure of a database and run some statements; this a a kind of merge with the one which existed in Libgnomedb and Mergeant but with a much improved user interface.
This is now all in the master branch in git.gnome.org, works (except for some DnD) on Windows and MacOSX. Here are some screenshots of the new browser, taken using a PostgreSQL database. One can open several connections at the same time in the browser, and for each connection, several windows can be opened. Each window displays a “perspective” (similar to Eclipse’s perspectives), and currently the schema browser perspective is implemented, which is shown below, more will come later (statements execution, reports, etc).
The shot above shows the index page where all the database objects are displayed (tables only for the moment), and the favorites bar on the left where one can drag n drop tables (or later other objects types) for quick access (the trashcan at the bottom is to remove favorites by dragging them on it). Clicking on a table opens a new tab as shown:
The shot above shows the details of table “products” with the traditional fields list and the constraints below (here clicking on the “warehouses” link opens yet another tab for the warehouses table). You can note in the bottom that when showing a table, it is also possible to display the table’s relations, ie. which table are referenced by the current table and which tables reference the current table, as show:
The shot above cleary shows that the “customers” table references the “locations” and “salesrep” tables and is itself referenced by the “orders” table. The canvas is drawn using GooCanvas and can be exported to PNG and SVG or printed.
That’s all for now, more later…