Libgda’s progress

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, 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).

browser, index view

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…

4 Responses to “Libgda’s progress”

  1. Dennis Krul says:

    Sweet! Keep up the good work! :)

  2. Nick says:

    Hi Vivien, thank you for all your work.
    Only one question: does that means that libgnomedb has been discontinued and the “good parts” of it integrated in libgda or that it is simply not up to date with current gda source code but it will updated in a second time?
    Thanks again

  3. vivien says:

    Libgnomedb will not be updated anymore, replaced with the new “libgdaui” library. If some widgets that were in Libgnomedb are missing from Libgdaui then it’s because I thought they were not generic enough to be integrated in there (of course it’s still possible to integrate them if i was wrong…).

  4. Nick says:

    Thank you very much, so I understood your post correctly.
    I’ll checkout the master branch and see the ui addictions.