Vivien Malerba

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
MgQfield -- Parent class for any query's field
MgQfAll -- Represents all the fields of an entity (through a MgTarget object)
MgQfField -- Represents one field of an entity (through a MgTarget object)
MgQfFunc -- Represents a function (selected by a MgServerFunction object)
MgQfValue -- Represents a single value (or a parameter)
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
MgDbmsUpdateViewer -- Progress bars for the DBMS update process
MgForm -- Simple form layout for the user to fill MgParameter objects
Data handlers
Built in data handlers
MgHandlerString -- 
MgHandlerBoolean -- 
MgHandlerTime -- 
MgHandlerNumerical -- 
MgHandlerNone -- Default handling of unkonwn data types
Plugins data handlers
MgHandlerText -- 
MgHandlerCidr -- Specific for Postgres's CIDR data type
MgHandlerPassmd5 -- Used to store password as an MD5 sum of real password
Data Entry widgets
Built in
MgEntryString -- 
MgEntryBoolean -- 
MgEntryTime -- 
MgEntryNone -- Default handling of unknown data types
MgEntryCombo -- A combo box to choose a value from a MgContext
Plugins
MgEntryCidr -- Specific for Postgres's CIDR data type
MgEntryPassmd5 -- Used to store password as an MD5 sum of real password
Cell Renderers (used in GtkTreeView widgets)
MgDataCellRendererInfo -- Cell renderer to display a cell contextual menu
MgDataCellRendererTextual -- Cell renderer for textual data
MgDataCellRendererBoolean -- Cell renderer for booleans
Utility objects
MgRefBase -- Used to reference other objects
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
Glossary