public void SetSvg(Stream dataStream)
 {
     byte[] data = new byte[dataStream.Length];
     dataStream.Read(data,0,(int)dataStream.Length);
     svg = new BufferedSvgSurface(data,BufferHeight);
     scale = 0;
     ReconfigureScrollbars ();
 }
 public void OnPlanImageChanged()
 {
     if (imageSurface != null) {
         imageSurface.Destroy ();
         imageSurface = null;
     }
     if (imageWrapper != null){
         imageWrapper.Dispose ();
         imageWrapper = null;
     }
     if (svg != null) {
         svg.Dispose ();
         svg = null;
     }
     if ((plan!=null)&&(plan.Image != null)) {
         using (var dataStream = new MemoryStream (plan.Image)) {
             if (plan.Filename.EndsWith (".svg")) {
                 SetSvg (dataStream);
             }else{
                 SetImage (dataStream);
             }
         }
         drawingarea1.QueueDraw ();
     } else {
         imageSurface = GenerateStub ();
     }
 }