コード例 #1
0
ファイル: SourceMap.cs プロジェクト: mikhp/greatmaps
 public void NotePositionUnlocked(LatLonZoom sourceMapPosition, MapPosition referenceMapPosition)
 {
     this._lastView = new SourceMapRegistrationView(this, sourceMapPosition, referenceMapPosition);
 }
コード例 #2
0
ファイル: SourceMap.cs プロジェクト: mikhp/greatmaps
 public SourceMap(MashupParseContext context, SourceMap.GetFilenameContext filenameContextDelegate, DirtyEvent parentDirty, DirtyEvent parentReadyToLockEvent)
 {
     this.dirtyEvent = new DirtyEvent(parentDirty);
     this.readyToLockChangedEvent = new DirtyEvent(parentReadyToLockEvent);
     this.filenameContextDelegate = filenameContextDelegate;
     this.latentRegionHolder = new LatentRegionHolder(this.dirtyEvent, this.readyToLockChangedEvent);
     XMLTagReader xMLTagReader = context.NewTagReader("SourceMap");
     context.ExpectIdentity(this);
     string attribute = context.reader.GetAttribute("SourceMapFilename");
     if (attribute != null)
     {
         string path = Path.Combine(filenameContextDelegate(), attribute);
         int pageNumber = 0;
         context.GetAttributeInt("PageNumber", ref pageNumber);
         this._documentFuture = new GeneralDocumentFuture(new FutureDocumentFromFilesystem(path, pageNumber));
     }
     context.GetAttributeBoolean("Expanded", ref this._expanded);
     string attribute2 = context.reader.GetAttribute("DisplayName");
     MapPosition mapPosition = null;
     MapPosition mapPosition2 = null;
     while (xMLTagReader.FindNextStartTag())
     {
         if (xMLTagReader.TagIs(RegistrationDefinition.GetXMLTag()))
         {
             context.AssertUnique(this.registration);
             this.registration = new RegistrationDefinition(context, this.dirtyEvent);
         }
         else
         {
             if (xMLTagReader.TagIs(GeneralDocumentFuture.GetXMLTag()))
             {
                 context.AssertUnique(this._documentFuture);
                 this._documentFuture = new GeneralDocumentFuture(context, filenameContextDelegate());
             }
             else
             {
                 if (xMLTagReader.TagIs(LocalDocumentDescriptor.GetXMLTag()))
                 {
                     context.AssertUnique(this._documentFuture);
                     LocalDocumentDescriptor localDocumentDescriptor = new LocalDocumentDescriptor(context, filenameContextDelegate());
                     this._documentFuture = new GeneralDocumentFuture(new FutureDocumentFromFilesystem(localDocumentDescriptor.GetFilesystemAbsolutePath(), localDocumentDescriptor.GetPageNumber()));
                 }
                 else
                 {
                     if (xMLTagReader.TagIs("LastSourceMapPosition"))
                     {
                         XMLTagReader xMLTagReader2 = context.NewTagReader("LastSourceMapPosition");
                         while (xMLTagReader2.FindNextStartTag())
                         {
                             if (xMLTagReader2.TagIs(MapPosition.GetXMLTag(context.version)))
                             {
                                 mapPosition = new MapPosition(context, null, ContinuousCoordinateSystem.theInstance);
                             }
                         }
                     }
                     else
                     {
                         if (xMLTagReader.TagIs("LastVEPosition"))
                         {
                             XMLTagReader xMLTagReader3 = context.NewTagReader("LastVEPosition");
                             while (xMLTagReader3.FindNextStartTag())
                             {
                                 if (xMLTagReader3.TagIs(MapPosition.GetXMLTag(context.version)))
                                 {
                                     mapPosition2 = new MapPosition(context, null, MercatorCoordinateSystem.theInstance);
                                 }
                             }
                         }
                         else
                         {
                             if (xMLTagReader.TagIs(RenderRegion.GetXMLTag()))
                             {
                                 context.AssertUnique(this.renderRegion);
                                 this.renderRegion = new RenderRegion(context, this.dirtyEvent, ContinuousCoordinateSystem.theInstance);
                             }
                             else
                             {
                                 if (xMLTagReader.TagIs(SourceMapInfo.GetXMLTag()))
                                 {
                                     context.AssertUnique(this._sourceMapInfo);
                                     this._sourceMapInfo = new SourceMapInfo(context, this.dirtyEvent);
                                 }
                                 else
                                 {
                                     if (xMLTagReader.TagIs(SourceMapRenderOptions.GetXMLTag()))
                                     {
                                         context.AssertUnique(this._sourceMapRenderOptions);
                                         this._sourceMapRenderOptions = new SourceMapRenderOptions(context, this.dirtyEvent);
                                     }
                                     else
                                     {
                                         if (xMLTagReader.TagIs(TransparencyOptions.GetXMLTag()))
                                         {
                                             this._transparencyOptions = new TransparencyOptions(context, this.dirtyEvent);
                                         }
                                         else
                                         {
                                             if (xMLTagReader.TagIs(SourceMapRegistrationView.GetXMLTag()))
                                             {
                                                 context.AssertUnique(this._lastView);
                                                 this._lastView = new SourceMapRegistrationView(this, context);
                                             }
                                             else
                                             {
                                                 if (xMLTagReader.TagIs(LegendList.GetXMLTag()))
                                                 {
                                                     context.AssertUnique(this.legendList);
                                                     this.legendList = new LegendList(this, context, this.dirtyEvent);
                                                 }
                                                 else
                                                 {
                                                     if (xMLTagReader.TagIs("SnapView"))
                                                     {
                                                         XMLTagReader xMLTagReader4 = context.NewTagReader("SnapView");
                                                         string requiredAttribute = context.GetRequiredAttribute("Context");
                                                         LatLonZoom latLonZoom = default(LatLonZoom);
                                                         bool flag = false;
                                                         bool flag2 = true;
                                                         CoordinateSystemIfc coordSys = null;
                                                         if (requiredAttribute == "Source")
                                                         {
                                                             coordSys = ContinuousCoordinateSystem.theInstance;
                                                         }
                                                         else
                                                         {
                                                             if (!(requiredAttribute == "Reference"))
                                                             {
                                                                 throw new InvalidMashupFile(context, string.Format("Invalid {0} value {1}", "Context", requiredAttribute));
                                                             }
                                                             coordSys = MercatorCoordinateSystem.theInstance;
                                                         }
                                                         while (xMLTagReader4.FindNextStartTag())
                                                         {
                                                             if (xMLTagReader4.TagIs(LatLonZoom.GetXMLTag()))
                                                             {
                                                                 if (flag)
                                                                 {
                                                                     context.ThrowUnique();
                                                                 }
                                                                 try
                                                                 {
                                                                     latLonZoom = new LatLonZoom(context, coordSys);
                                                                 }
                                                                 catch (InvalidLLZ)
                                                                 {
                                                                     flag2 = false;
                                                                 }
                                                                 flag = true;
                                                             }
                                                         }
                                                         if (flag2)
                                                         {
                                                             if (!flag)
                                                             {
                                                                 context.AssertPresent(null, LatLonZoom.GetXMLTag());
                                                             }
                                                             if (requiredAttribute == "Source")
                                                             {
                                                                 this.sourceSnap = latLonZoom;
                                                             }
                                                             else
                                                             {
                                                                 if (requiredAttribute == "Reference")
                                                                 {
                                                                     this.referenceSnap = latLonZoom;
                                                                 }
                                                                 else
                                                                 {
                                                                     D.Assert(false, "handled above.");
                                                                 }
                                                             }
                                                         }
                                                     }
                                                     else
                                                     {
                                                         if (xMLTagReader.TagIs("SnapZoom"))
                                                         {
                                                             context.NewTagReader("SnapZoom");
                                                             string requiredAttribute2 = context.GetRequiredAttribute("Context");
                                                             bool flag3 = false;
                                                             CoordinateSystemIfc theInstance;
                                                             if (requiredAttribute2 == "Source")
                                                             {
                                                                 theInstance = ContinuousCoordinateSystem.theInstance;
                                                             }
                                                             else
                                                             {
                                                                 if (!(requiredAttribute2 == "Reference"))
                                                                 {
                                                                     throw new InvalidMashupFile(context, string.Format("Invalid {0} value {1}", "Context", requiredAttribute2));
                                                                 }
                                                                 theInstance = MercatorCoordinateSystem.theInstance;
                                                             }
                                                             int num = 0;
                                                             try
                                                             {
                                                                 theInstance.GetZoomRange().Parse(context, "Zoom");
                                                                 flag3 = true;
                                                             }
                                                             catch (InvalidMashupFile)
                                                             {
                                                             }
                                                             if (flag3)
                                                             {
                                                                 if (requiredAttribute2 == "Source")
                                                                 {
                                                                     this.sourceSnapZoom = num;
                                                                 }
                                                                 else
                                                                 {
                                                                     if (requiredAttribute2 == "Reference")
                                                                     {
                                                                         this.referenceSnapZoom = num;
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if (context.version == InlineSourceMapInfoSchema.schema)
         {
             if (xMLTagReader.TagIs("MapFileURL"))
             {
                 this._sourceMapInfo.mapFileURL = XMLUtils.ReadStringXml(context, "MapFileURL");
             }
             else
             {
                 if (xMLTagReader.TagIs("MapHomePage"))
                 {
                     this._sourceMapInfo.mapHomePage = XMLUtils.ReadStringXml(context, "MapHomePage");
                 }
                 else
                 {
                     if (xMLTagReader.TagIs("MapDescription"))
                     {
                         this._sourceMapInfo.mapDescription = XMLUtils.ReadStringXml(context, "MapDescription");
                     }
                 }
             }
         }
     }
     if (attribute2 != null)
     {
         this._displayName = attribute2;
     }
     else
     {
         this._displayName = this._documentFuture.documentFuture.GetDefaultDisplayName();
     }
     if (this._lastView == null && mapPosition != null && mapPosition2 != null)
     {
         this._lastView = new SourceMapRegistrationView(this, mapPosition.llz, mapPosition2);
     }
     if (this._documentFuture == null)
     {
         throw new Exception("Source Map element missing document descriptor tag");
     }
     if (this.registration == null)
     {
         this.registration = new RegistrationDefinition(this.dirtyEvent);
     }
     this.registration.dirtyEvent.Add(this.readyToLockChangedEvent);
     if (this.legendList == null)
     {
         this.legendList = new LegendList(this, this.dirtyEvent, this.readyToLockChangedEvent);
     }
     if (this._sourceMapInfo == null)
     {
         this._sourceMapInfo = new SourceMapInfo(this.dirtyEvent);
     }
     if (this._sourceMapRenderOptions == null)
     {
         this._sourceMapRenderOptions = new SourceMapRenderOptions(this.dirtyEvent);
     }
     if (this._transparencyOptions == null)
     {
         this._transparencyOptions = new TransparencyOptions(this.dirtyEvent);
     }
 }
コード例 #3
0
ファイル: SourceMap.cs プロジェクト: mikhp/greatmaps
 public void NotePositionLocked(MapPosition referenceMapPosition)
 {
     this._lastView = new SourceMapRegistrationView(this, referenceMapPosition);
 }