[mapguide-commits] r1282 - in trunk/MgDev: Common/Stylization Server/src/Services/Mapping

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Mar 19 08:44:03 EDT 2007


Author: waltweltonlair
Date: 2007-03-19 08:44:03 -0400 (Mon, 19 Mar 2007)
New Revision: 1282

Modified:
   trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp
   trunk/MgDev/Common/Stylization/SE_SymbolManager.h
   trunk/MgDev/Server/src/Services/Mapping/SEMgSymbolManager.h
Log:
Add support for inlined symbols in the layer definition

Modified: trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp
===================================================================
--- trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp	2007-03-18 22:14:26 UTC (rev 1281)
+++ trunk/MgDev/Common/Stylization/SE_StyleVisitor.cpp	2007-03-19 12:44:03 UTC (rev 1282)
@@ -552,6 +552,8 @@
     for (int i = 0; i < len; i++)
     {
         SimpleSymbol* sym = symbols->GetAt(i);
+
+        // get the symbol definition, either inlined or by reference
         SimpleSymbolDefinition* def = sym->GetSymbolDefinition();
         if (def == NULL)
         {
@@ -584,12 +586,22 @@
     for (int i = 0; i < nSymbols; i++)
     {
         SymbolInstance* instance = symbols->GetAt(i);
-        SymbolDefinition* sd = m_resources? m_resources->GetSymbolDefinition(instance->GetSymbolReference().c_str()) : NULL;
-        if (sd == NULL)
-            continue;
 
-        m_symbolization = new SE_Symbolization;
+        // get the symbol definition, either inlined or by reference
+        SymbolDefinition* def = instance->GetSymbolDefinition();
+        if (def == NULL)
+        {
+            if (m_resources == NULL)
+                continue;
 
+            const MdfString& ref = instance->GetSymbolReference();
+            def = m_resources->GetSymbolDefinition(ref.c_str());
+            if (def == NULL)
+                continue;
+        }
+
+        m_symbolization = new SE_Symbolization();
+
         m_symbolization->context = instance->GetSizeContext();
 
         ParseBooleanExpression(instance->GetDrawLast(), m_symbolization->drawLast);
@@ -604,7 +616,7 @@
         ParseDoubleExpression(instance->GetInsertionOffsetX(), m_symbolization->absOffset[0]);
         ParseDoubleExpression(instance->GetInsertionOffsetY(), m_symbolization->absOffset[1]);
 
-        sd->AcceptVisitor(*this);
+        def->AcceptVisitor(*this);
 
         result.push_back(m_symbolization);
     }

Modified: trunk/MgDev/Common/Stylization/SE_SymbolManager.h
===================================================================
--- trunk/MgDev/Common/Stylization/SE_SymbolManager.h	2007-03-18 22:14:26 UTC (rev 1281)
+++ trunk/MgDev/Common/Stylization/SE_SymbolManager.h	2007-03-19 12:44:03 UTC (rev 1282)
@@ -21,12 +21,14 @@
 namespace MdfModel
 {
     class SymbolDefinition;
-};
+}
 
+using namespace MdfModel;
+
 class SE_SymbolManager
 {
 public:
-    virtual MdfModel::SymbolDefinition* GetSymbolDefinition(const wchar_t* resource) = 0;
+    virtual SymbolDefinition* GetSymbolDefinition(const wchar_t* resource) = 0;
     virtual const unsigned char* GetImageData(const wchar_t* resource, int& length) = 0;
 };
 

Modified: trunk/MgDev/Server/src/Services/Mapping/SEMgSymbolManager.h
===================================================================
--- trunk/MgDev/Server/src/Services/Mapping/SEMgSymbolManager.h	2007-03-18 22:14:26 UTC (rev 1281)
+++ trunk/MgDev/Server/src/Services/Mapping/SEMgSymbolManager.h	2007-03-19 12:44:03 UTC (rev 1282)
@@ -23,13 +23,6 @@
 
 class MgResourceService;
 
-namespace MdfModel
-{
-    class SymbolDefinition;
-};
-
-using namespace MdfModel;
-
 // MappingService specific implementation of the RS_SymbolManager interface.
 // It retrieves DWF symbol data from the resource service and caches it
 // for reuse by stylization.



More information about the mapguide-commits mailing list