[mapguide-commits] r6004 - in trunk/Tools/Maestro:
Maestro.Editors/MapDefinition
Maestro.Editors/SymbolDefinition/GraphicsEditors
OSGeo.MapGuide.MaestroAPI/ObjectModels
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Tue Jul 26 08:44:43 EDT 2011
Author: jng
Date: 2011-07-26 05:44:43 -0700 (Tue, 26 Jul 2011)
New Revision: 6004
Modified:
trunk/Tools/Maestro/Maestro.Editors/MapDefinition/FiniteScaleListCtrl.resx
trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/GraphicsEditors/ImageDialog.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
Log:
#1749: Fix error adding new image to the graphics collection of a Simple Symbol Definition.
Modified: trunk/Tools/Maestro/Maestro.Editors/MapDefinition/FiniteScaleListCtrl.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/MapDefinition/FiniteScaleListCtrl.resx 2011-07-26 12:16:09 UTC (rev 6003)
+++ trunk/Tools/Maestro/Maestro.Editors/MapDefinition/FiniteScaleListCtrl.resx 2011-07-26 12:44:43 UTC (rev 6004)
@@ -450,27 +450,6 @@
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>3, 16</value>
</metadata>
- <data name="btnEditScalesManually.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
- <value>Magenta</value>
- </data>
- <data name="btnEditScalesManually.Size" type="System.Drawing.Size, System.Drawing">
- <value>23, 22</value>
- </data>
- <data name="btnEditScalesManually.ToolTipText" xml:space="preserve">
- <value>Manually edit scales</value>
- </data>
- <data name="btnRemoveScale.Enabled" type="System.Boolean, mscorlib">
- <value>False</value>
- </data>
- <data name="btnRemoveScale.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
- <value>Magenta</value>
- </data>
- <data name="btnRemoveScale.Size" type="System.Drawing.Size, System.Drawing">
- <value>23, 22</value>
- </data>
- <data name="btnRemoveScale.ToolTipText" xml:space="preserve">
- <value>Remove selected scale</value>
- </data>
<data name="toolStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 16</value>
</data>
@@ -519,6 +498,27 @@
<data name=">>groupBox2.ZOrder" xml:space="preserve">
<value>0</value>
</data>
+ <data name="btnEditScalesManually.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
+ <value>Magenta</value>
+ </data>
+ <data name="btnEditScalesManually.Size" type="System.Drawing.Size, System.Drawing">
+ <value>23, 22</value>
+ </data>
+ <data name="btnEditScalesManually.ToolTipText" xml:space="preserve">
+ <value>Manually edit scales</value>
+ </data>
+ <data name="btnRemoveScale.Enabled" type="System.Boolean, mscorlib">
+ <value>False</value>
+ </data>
+ <data name="btnRemoveScale.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
+ <value>Magenta</value>
+ </data>
+ <data name="btnRemoveScale.Size" type="System.Drawing.Size, System.Drawing">
+ <value>23, 22</value>
+ </data>
+ <data name="btnRemoveScale.ToolTipText" xml:space="preserve">
+ <value>Remove selected scale</value>
+ </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
Modified: trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/GraphicsEditors/ImageDialog.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/GraphicsEditors/ImageDialog.cs 2011-07-26 12:16:09 UTC (rev 6003)
+++ trunk/Tools/Maestro/Maestro.Editors/SymbolDefinition/GraphicsEditors/ImageDialog.cs 2011-07-26 12:44:43 UTC (rev 6004)
@@ -123,7 +123,11 @@
private void txtImageBase64_TextChanged(object sender, EventArgs e)
{
+ //HACK: Leaky Abstraction. The impl of IImageGraphic.Item returns a new instance
+ //So these are not the same reference
_imageInline.Content = Convert.FromBase64String(txtImageBase64.Text);
+ if (_image.Item.Type == ImageType.Inline)
+ _image.Item = _imageInline;
}
private void lnkLoadImage_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
@@ -134,7 +138,11 @@
if (open.ShowDialog() == DialogResult.OK)
{
byte[] content = File.ReadAllBytes(open.FileName);
+ //HACK: Leaky Abstraction. The impl of IImageGraphic.Item returns a new instance
+ //So these are not the same reference
_imageInline.Content = content;
+ if (_image.Item.Type == ImageType.Inline)
+ _image.Item = _imageInline;
txtImageBase64.Text = Convert.ToBase64String(content);
txtImageBase64.Tag = content;
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs 2011-07-26 12:16:09 UTC (rev 6003)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolDefinition.cs 2011-07-26 12:44:43 UTC (rev 6004)
@@ -332,7 +332,11 @@
public IImageGraphic CreateImageGraphics()
{
- return new Image() { };
+ //default to empty inline content
+ return new Image()
+ {
+ Item = new byte[0]
+ };
}
public IParameter CreateParameter()
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs 2011-07-26 12:16:09 UTC (rev 6003)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/SymbolInterfaces.cs 2011-07-26 12:44:43 UTC (rev 6004)
@@ -940,6 +940,17 @@
/// <summary>
/// Gets or sets the image content
/// </summary>
+ /// <remarks>
+ /// If the object being returned is an inline image, the object is a fresh instance whose
+ /// byte array refers to the same instance. That is to say:
+ /// <code>
+ /// IInlineImage img1 = (IInlineImage)imageGraphic.Item;
+ /// IInlineImage img2 = (IInlineImage)imageGraphic.Item;
+ ///
+ /// Object.ReferenceEquals(img1, img2); //false
+ /// Object.ReferenceEquals(img1.Content, img2.Content); //true
+ /// </code>
+ /// </remarks>
IImageBase Item { get; set; }
/// <summary>
More information about the mapguide-commits
mailing list