<< Return to Main Index

< Return to Class Index

class CGXxxxFTR : public CXMLSerializeImp

These set of CGXxxxFTRs are used to plug-in grid’s data structures into the XML Serialization architecture to enable serializing them as XML data.

The Grid XML Serialization architecture consists of the Core framework and the Grid adapter classes. The Core framework used by all of our products is available in our SFL library and the Grid adapter classes consists of these set of CGXxxxFTR classes. Please refer to the SFL Users Guide and class information for more information on the Core framework classes and the Grid User’s guide for more information on the Grid XML Serialization adapter classes.

Here is the list of Grid adapter classes, which we call Formatters in general, and their corresponding Grid classes.

CGXDataFTR CGXData

CGXPrintDeviceFTR CGXPrintDevice

CGXPropertiesFTR CGXProperties

CGXRangeFTR CGXRange

CGXStyleFTR CGXStyle

CGXStylesMapFTR CGXStylesMap

CGXGridParamFTR CGXGridParam

CGXBrushFTR CGXBrush

CGXFontFTR CGXFont

CGXCollMapDWordToLongFTR CGXCollMapDWordToLong

CGXUserPropertyInfoFTR CGXProperties::UserPropertyInfo

CGXAbstractUserAttributeFTR CGXAbstractUserAttribute

CGXUserAttributeFTR CGXUserAttribute

CGXEllipseUserAttributeFTR CGXEllipseUserAttribute

CGXOleVarUserAttributeFTR CGXOleVarUserAttribute

CGXDelayedRangeFTR CGXDelayedRange

We need Formatters to plug into the XML serialization framework because the framework can only Serialize classes with the IXMLSerialize interface, besides the fundamental types (Just like the MFC serialization can handle only Cobject derived classes). The Formatters derive from IXMLSerialize interface and serializes data from the corresponding attached object in their XMLSerialization override.

The constructors for the Formatters take a reference to their corresponding objects (so that data can be serialized in and out) and an optional string indicating the tagName of the corresponding element in the XML document.

To serialize all the grid data you just have to serialize the CGXGridParam object, which would in turn serialize the rest of its aggregated, above grid data structures.

The example below shows how to serialize the CGXGridParam in your application. You could alternatively serialize only a portion of the grid by serializing only a portion of the grid’s data structures.

#include <grid/xmlser/gxxmlser.h>

Example

Taken from our Grid\General\Gridapp sample, this example shows how to add serialization support in your document:

// Your document class should derive from SECXMLDocAdapter_T
// Override the following virtuals in IXMLSerialize
void CGridSampleDoc::GetElementType(LPTSTR str)
{
   // The tag name under which your document data will be stored.
   _tcscpy(str, _T("MyGridDocument"));
}

void CGridSampleDoc::XMLSerialize(SECXMLArchive& ar)
{
   if(ar.IsStoring())
   {
      CGXGridParam* pParam = // Obtain a reference to the parameter object.

      // Writing the Grid param
      ar.Write(NULL, CGXGridParamFTR(pParam));
   }
   else
   {
      // Create a param object into which to serialize.
      // You could alternatively pass in a NULL reference and let the formatter create a corresponding object for you.
      CGXGridParam* pParam = new CGXGridParam();
      if(!ar.Read(NULL, CGXGridParamFTR(pParam)))
         AfxMessageBox(_T("Unable to recognize XML file format."));
   }
}