[mapguide-commits] r8234 - trunk/Tools/Maestro/Maestro.Editors/Preview

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Jun 16 22:46:21 PDT 2014


Author: jng
Date: 2014-06-16 22:46:21 -0700 (Mon, 16 Jun 2014)
New Revision: 8234

Modified:
   trunk/Tools/Maestro/Maestro.Editors/Preview/DefaultResourcePreviewer.cs
   trunk/Tools/Maestro/Maestro.Editors/Preview/LocalMapPreviewer.cs
   trunk/Tools/Maestro/Maestro.Editors/Preview/ResourcePreviewEngine.cs
Log:
#2455: Disable previews for untyped resources except for Map Definitions, Web Layouts and Application Definitions

Modified: trunk/Tools/Maestro/Maestro.Editors/Preview/DefaultResourcePreviewer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Preview/DefaultResourcePreviewer.cs	2014-06-17 03:00:15 UTC (rev 8233)
+++ trunk/Tools/Maestro/Maestro.Editors/Preview/DefaultResourcePreviewer.cs	2014-06-17 05:46:21 UTC (rev 8234)
@@ -178,13 +178,26 @@
             var rt = res.ResourceType;
             if (res.CurrentConnection.Capabilities.SupportsResourcePreviews)
             {
+                bool bKnownResourceType = !(res is UntypedResource);
                 if (rt == ResourceTypes.SymbolDefinition.ToString())
                 {
-                    return res.CurrentConnection.SiteVersion >= new Version(2, 0) && Array.IndexOf(res.CurrentConnection.Capabilities.SupportedServices, (int)ServiceType.Mapping) >= 0;
+                    return bKnownResourceType && res.CurrentConnection.SiteVersion >= new Version(2, 0) && Array.IndexOf(res.CurrentConnection.Capabilities.SupportedServices, (int)ServiceType.Mapping) >= 0;
                 }
                 else
                 {
-                    return ResourcePreviewEngine.IsPreviewableType(rt);
+                    bool bPreviewable = ResourcePreviewEngine.IsPreviewableType(rt);
+                    //A Map Definition can be saved directly and referenced by a Web Layout
+                    //An Web Layout and Application Definition can be saved directly and
+                    //passed straight to the AJAX/Fusion viewers.
+                    //
+                    //So even if they're UntypedResource instances, they're still "previewable" for the purpose
+                    //of this test
+                    if (res.ResourceType != ResourceTypes.MapDefinition.ToString() &&
+                        res.ResourceType != ResourceTypes.WebLayout.ToString() &&
+                        res.ResourceType != ResourceTypes.ApplicationDefinition.ToString())
+                        return bKnownResourceType && bPreviewable;
+                    else
+                        return bPreviewable;
                 }
             }
             return false;

Modified: trunk/Tools/Maestro/Maestro.Editors/Preview/LocalMapPreviewer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Preview/LocalMapPreviewer.cs	2014-06-17 03:00:15 UTC (rev 8233)
+++ trunk/Tools/Maestro/Maestro.Editors/Preview/LocalMapPreviewer.cs	2014-06-17 05:46:21 UTC (rev 8234)
@@ -78,9 +78,10 @@
 
         private static bool IsLocalPreviewableType(IResource res)
         {
-            return res.ResourceType == ResourceTypes.LayerDefinition.ToString() ||
+            return (res.ResourceType == ResourceTypes.LayerDefinition.ToString() ||
                    res.ResourceType == ResourceTypes.MapDefinition.ToString() ||
-                   res.ResourceType == ResourceTypes.WatermarkDefinition.ToString();
+                   res.ResourceType == ResourceTypes.WatermarkDefinition.ToString()) &&
+                   !(res is OSGeo.MapGuide.ObjectModels.UntypedResource);
         }
 
         /// <summary>

Modified: trunk/Tools/Maestro/Maestro.Editors/Preview/ResourcePreviewEngine.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/Preview/ResourcePreviewEngine.cs	2014-06-17 03:00:15 UTC (rev 8233)
+++ trunk/Tools/Maestro/Maestro.Editors/Preview/ResourcePreviewEngine.cs	2014-06-17 05:46:21 UTC (rev 8234)
@@ -292,14 +292,15 @@
 
             var sessionId = _edSvc.SessionID;
             var mdfId = "Session:" + sessionId + "//" + Guid.NewGuid() + ".MapDefinition"; //NOXLATE
-            var mdf = (IMapDefinition)res;
-
-            var conn = mdf.CurrentConnection;
-            IMapDefinition2 mdf2 = mdf as IMapDefinition2;
-            if (mdf2 != null && PreviewSettings.AddDebugWatermark)
-                CreateDebugWatermark(mdf2, conn, null);
-            conn.ResourceService.SaveResourceAs(mdf, mdfId);
-
+            var conn = res.CurrentConnection;
+            var mdf = res as IMapDefinition;
+            if (mdf != null)
+            {
+                IMapDefinition2 mdf2 = mdf as IMapDefinition2;
+                if (mdf2 != null && PreviewSettings.AddDebugWatermark)
+                    CreateDebugWatermark(mdf2, conn, null);
+            }
+            conn.ResourceService.SaveResourceAs(res, mdfId);
             //if (PropertyService.Get(ConfigProperties.PreviewViewerType, "AJAX").Equals("AJAX")) //NOXLATE
             if (PreviewSettings.UseAjaxViewer)
             {



More information about the mapguide-commits mailing list