[mapguide-commits] r5641 - in trunk/Tools/Maestro/Maestro.Base:
Commands Properties UI
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sat Mar 19 12:24:59 EDT 2011
Author: jng
Date: 2011-03-19 09:24:59 -0700 (Sat, 19 Mar 2011)
New Revision: 5641
Modified:
trunk/Tools/Maestro/Maestro.Base/Commands/PasteCommand.cs
trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs
Log:
This submission includes the following changes:
- #1636: Guard against moving an open resource via drag/drop in Site Explorer
- Immediately invalidate the TreeViewAdv control when flagging node state changes
Modified: trunk/Tools/Maestro/Maestro.Base/Commands/PasteCommand.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Commands/PasteCommand.cs 2011-03-19 15:35:38 UTC (rev 5640)
+++ trunk/Tools/Maestro/Maestro.Base/Commands/PasteCommand.cs 2011-03-19 16:24:59 UTC (rev 5641)
@@ -53,7 +53,8 @@
return;
var folder = exp.SelectedItems[0];
-
+ var sourceItemsNotMoved = new List<string>();
+
//.net FX 2.0 hack to compensate for lack of set collection
Dictionary<string, string> folders = new Dictionary<string, string>();
@@ -98,6 +99,15 @@
}
else if (item.ClipboardState == RepositoryItem.ClipboardAction.Cut)
{
+ if (!item.IsFolder)
+ {
+ if (omgr.IsOpen(item.ResourceId))
+ {
+ sourceItemsNotMoved.Add(item.ResourceId);
+ continue;
+ }
+ }
+
//TODO: Should we prompt? That may be equivalent to saying
//"Shall I break your resources because you're moving" isn't it?
var res = conn.ResourceService.MoveResourceWithReferences(item.ResourceId, resId, null, null);
@@ -108,6 +118,9 @@
}
}
+ if (sourceItemsNotMoved.Count > 0)
+ MessageService.ShowMessage(string.Format(Properties.Resources.ItemsNotMovedDueToBeingOpen, Environment.NewLine + string.Join(Environment.NewLine, sourceItemsNotMoved.ToArray())));
+
ResetItems(omgr, itemsToPaste);
exp.RefreshModel(folder.ResourceId);
foreach (var f in folders.Keys)
Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs 2011-03-19 15:35:38 UTC (rev 5640)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.Designer.cs 2011-03-19 16:24:59 UTC (rev 5641)
@@ -759,6 +759,15 @@
}
}
+ /// <summary>
+ /// Looks up a localized string similar to The following items were not moved due to being already open in an editor: {0}.
+ /// </summary>
+ internal static string ItemsNotMovedDueToBeingOpen {
+ get {
+ return ResourceManager.GetString("ItemsNotMovedDueToBeingOpen", resourceCulture);
+ }
+ }
+
internal static System.Drawing.Bitmap layer {
get {
object obj = ResourceManager.GetObject("layer", resourceCulture);
@@ -1149,7 +1158,7 @@
}
/// <summary>
- /// Looks up a localized string similar to The following resources were not copied or moved because they would be overwriting resources currently open: {0}.
+ /// Looks up a localized string similar to The following resources were not copied or moved because they would be overwriting resources currently open: {0}The following resources were not moved because they are currently open: {1}.
/// </summary>
internal static string NotCopiedOrMovedDueToOpenEditors {
get {
Modified: trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx 2011-03-19 15:35:38 UTC (rev 5640)
+++ trunk/Tools/Maestro/Maestro.Base/Properties/Resources.resx 2011-03-19 16:24:59 UTC (rev 5641)
@@ -869,6 +869,9 @@
<value>Cannot save to {0} as it is already opened by another editor</value>
</data>
<data name="NotCopiedOrMovedDueToOpenEditors" xml:space="preserve">
- <value>The following resources were not copied or moved because they would be overwriting resources currently open: {0}</value>
+ <value>The following resources were not copied or moved because they would be overwriting resources currently open: {0}The following resources were not moved because they are currently open: {1}</value>
</data>
+ <data name="ItemsNotMovedDueToBeingOpen" xml:space="preserve">
+ <value>The following items were not moved due to being already open in an editor: {0}</value>
+ </data>
</root>
\ No newline at end of file
Modified: trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs 2011-03-19 15:35:38 UTC (rev 5640)
+++ trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs 2011-03-19 16:24:59 UTC (rev 5641)
@@ -296,6 +296,7 @@
item.Reset();
break;
}
+ trvResources.Invalidate();
}
}
}
@@ -419,7 +420,8 @@
private string [] MoveResources(ICollection<string> resIds, string folderId)
{
var wb = Workbench.Instance;
- var notMoved = new List<string>();
+ var notMovedToTarget = new List<string>();
+ var notMovedFromSource = new List<string>();
var omgr = ServiceRegistry.GetService<OpenResourceManager>();
var dlg = new ProgressDialog();
var worker = new ProgressDialog.DoBackgroundWork((w, e, args) =>
@@ -447,11 +449,16 @@
{
var rid = new ResourceIdentifier(r);
var target = folderId + rid.Name + "." + rid.Extension;
+ if (omgr.IsOpen(r))
+ {
+ notMovedFromSource.Add(r);
+ continue;
+ }
if (!omgr.IsOpen(target))
_conn.ResourceService.MoveResourceWithReferences(r, target, null, cb);
else
- notMoved.Add(r);
+ notMovedToTarget.Add(r);
}
}
@@ -471,8 +478,13 @@
var affectedFolders = (IEnumerable<string>)dlg.RunOperationAsync(wb, worker, folderId, resIds);
- if (notMoved.Count > 0)
- MessageService.ShowMessage(string.Format(Properties.Resources.NotCopiedOrMovedDueToOpenEditors, Environment.NewLine + string.Join(Environment.NewLine, notMoved.ToArray())));
+ if (notMovedToTarget.Count > 0 || notMovedFromSource.Count > 0)
+ {
+ MessageService.ShowMessage(string.Format(
+ Properties.Resources.NotCopiedOrMovedDueToOpenEditors,
+ Environment.NewLine + string.Join(Environment.NewLine, notMovedToTarget.ToArray()) + Environment.NewLine,
+ Environment.NewLine + string.Join(Environment.NewLine, notMovedFromSource.ToArray()) + Environment.NewLine));
+ }
return new List<string>(affectedFolders).ToArray();
}
More information about the mapguide-commits
mailing list