= !MapGuide RFC 67 - Common Print Layout and Print Layout Elements = This page contains an change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||1.0|| ||Submission Date||June 18, 2009|| ||Last Modified||Greg Boone Friday Jun 18 10:42:00 2009|| ||Author||Greg Boone|| ||RFC Status||Under Construction|| ||Implementation Status|||| ||Proposed Milestone||2.x|| ||Assigned PSC guide(s)||Bruce Dechant|| ||'''Voting History'''|||| ||+1|||| ||+0|||| ||-0|||| ||-1|||| ||no vote|| || == Overview == After some analysis on the overall ability to write robust applications using the Print Layout and Print Layout Element definitions as currently defined for !MapGuide in the Common Platform API, the current definitions were found to be somewhat limited in their usefulness for developing non-!MapGuide applications. In general, it was found to be insufficient to be considered as a robust foundation for a Print Layout Service that would meet the needs of common component development across multiple product lines. The goal of the forthcoming proposal will be the definition of a new print layout schema and service that would replace the current design and provide a foundation for multi-application development moving forward in version 2.x of the Platform API. == Proposed Solution == To support common print layout elements, the general approach will be to develop a set of common definitions representing the schema of various print layout element types, the common components that embody those definitions, and supply the architecture for sharing these definitions and components accross application. === Print Layout and Print Layout Elements === The detailed schema containing definitions of the print layout, print layout element, and print layout element definition can be found in the attached documents. The print layout element design involves defining an entry point for creating print layout and its elements. This entry point is called '''!MgPrintLayoutServiceBase'''. This new service can be accessed by the familiar entry point for services specific to products using the Common Platform API. For example, it can be accessed as: {{{ MgPrintLayoutServiceBase printLayoutService = ServiceFactory::GetService(MgResourceType::PrintLayout); }}} == Implications == == Test Plan == == Funding/Resources ==