Vivien Malerba

Abstract

The Libmergeant library aims at making relational database's data easy to manage by providing a complete meta-data dictionnary and several powerfull widgets to build applications upon.


Table of Contents

Introduction to the library
Simple example
Database structure
Coding the application
Objects related to the DBMS server
MgConf - Main object: manages all the data dictionnary of the library.
MgServer - Manages the connection to a database server.
MgResultSet - Encapsulates a result set returned by the execution of a SELECT statement
MgServerDataType - Represents a data type in the DBMS
MgServerFunction - Represents a function in the DBMS.
MgServerAggregate - Represents an aggregate in the DBMS (like COUNT() or AVG() for example)
Objects related to the database structure
MgDatabase - Represents a database in the DBMS server
MgDbTable - Represents a table or a view in the database
MgDbField - Represents a field in a table or a view in the database
MgDbConstraint - Represents a constraint within a database
Objects related to queries
General words about queries
General structure of a query
Graphical conventions to represent queries
Query's parameters
Structural requirements for each type of query
Direct SQL queries
MgQuery - Represents any kind of DML query
MgTarget - Represents a target entity within a query.
Query fields
MgJoin - Represents a join between two different entities
MgCondition - Represents a condition within a query
MgParameter - Represents a parameter when needed to execute a query
MgContext - Manages all the MgParameter objects required to execute a query
Interfaces
MgXmlStorage - Interface which provides saving and loading using XML structures
MgDataHandler - Interface which provides data handling capabilities
MgDataEntry - Interface which provides the user with specific widgets to manipulate data
MgEntity - Interface to represent a generic entity (for tables, views or queries)
MgField - Interface to represent a generic field (for tables's fields, etc).
MgRenderer - Interface to get representations of objects as SQL statements, XML nodes or human readable text
MgReferer - Interface to know when on object is completely defined
MgWorkWidget - Interface used to perform common operations on widgets which implement it. The MgWorkForm and MgWorkGrid widgets do implement that interface.
Widgets
MgSelector - Individual selection of libmergeant objects (data types, functions, ...)
MgWorkForm - Form to display and modify data provided by a SELECT query
MgWorkGrid - Grid (tabular view) to display and modify data provided by a SELECT query
MgWorkMatrix - Widget to modify the assoctations between two tables
MgWorkLayout - Widget rendering a MgCustomLayout specification
MgDbmsUpdateViewer - Progress bars for the DBMS update process
MgForm - Simple form layout for the user to fill MgParameter objects
Graphing objects and widgets
MgGraph - Data model to keep graphs' layout
MgGraphItem - Parts of data model used with the MgGraph object.
MgCanvas - Base class for all the GnomeCanvas derived widgets in libmergeant.
MgCanvasDbRelations - Graphical representation of the relations (foreign key constreints) in the database.
MgCanvasItem - Base class for all the GnomeCanvasItem derived widgets in libmergeant.
MgCanvasEntity - Draws a graphical representation of a MgEntity object
MgCanvasField - Draws a graphical representation of a MgField object
MgCanvasTip - Draws a "tooltip" text
MgCanvasCursor - Represents a small cursor used when a drag and drop operations occurs within the canvas
MgCanvasText - Base class for MgCanvasItem objects rendering a MgBase's name as a text
Data handlers
Built in data handlers
Plugins data handlers
Data Entry widgets
Built in
Plugins
Cell Renderers (used in GtkTreeView widgets)
Utility objects
MgRefBase - Used to reference other objects
MgCustomLayout - Object to store the model part of custom layouts
MgGraphviz - Creates .dot files which can then be processed with GraphViz.
MgWorkCore - Creates UPDATE, INSERT and DELETE queries form a SELECT query
Non instantiable objects and widgets
MgBase - The base class for many of the library'objects
MgEntryShell - Provides the necessary button to control ths state of a MgDataEntry
MgEntryWrapper - Abstract class that implements the MgDataEntry interface
Object Hierarchy