[mapguide-commits] r5722 - in trunk/Tools/Maestro:
Maestro.AddIn.ExtendedObjectModels/Templates
Maestro.Base/Commands Maestro.Base/Editor
Maestro.Base/Templates Maestro.Base/UI Maestro.Editors
Maestro.Editors/LayerDefinition/Vector Maestro.Editors/LoadProcedure
OSGeo.MapGuide.MaestroAPI/Commands
OSGeo.MapGuide.MaestroAPI/ObjectModels
OSGeo.MapGuide.MaestroAPI.Http
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Tue Apr 26 09:59:16 EDT 2011
Author: jng
Date: 2011-04-26 06:59:16 -0700 (Tue, 26 Apr 2011)
New Revision: 5722
Modified:
trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs
trunk/Tools/Maestro/Maestro.Base/Commands/NewItemCommand.cs
trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs
trunk/Tools/Maestro/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs
trunk/Tools/Maestro/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs
trunk/Tools/Maestro/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs
trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs
trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs
trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerSettingsSectionCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadProcedureEditorCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadTargetCtrl.cs
trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/SdfTransformationCtrl.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
Log:
This submission contains:
- #1670: Set default folder for new load procedures to folder where New Resource command was invoked from
- #1671: Make new resources default to dirty state
- Add a new MarkDirty() API in IEditorService to force dirty state
- Fix NullReferenceException when adding a spatial context override on a fresh feature source
- Force dirty state when running "Load Resources" on the Load Procedure Editor as execution actually makes changes to the Load Procedure object being passed to it.
- Fix SiteExplorer.RefreshModel() to check for non-existent resource ids. If the resource id is non-existent, we walk back up the parent hierarchy until we find a folder resource id that exists and refresh the model from that point.
Modified: trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.AddIn.ExtendedObjectModels/Templates/SQLiteLoadProcedureItemTemplate.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -59,7 +59,14 @@
dlg.Filter = Properties.Resources.Filter_Sqlite_Files;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
- return ObjectFactory.CreateLoadProcedure(conn, LoadType.Sqlite, dlg.FileNames);
+ var proc = ObjectFactory.CreateLoadProcedure(conn, LoadType.Sqlite, dlg.FileNames);
+ if (!string.IsNullOrEmpty(startPoint) && ResourceIdentifier.IsFolderResource(startPoint))
+ {
+ proc.SubType.RootPath = startPoint;
+ proc.SubType.SpatialDataSourcesPath = startPoint;
+ proc.SubType.LayersPath = startPoint;
+ }
+ return proc;
}
return null;
}
Modified: trunk/Tools/Maestro/Maestro.Base/Commands/NewItemCommand.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Commands/NewItemCommand.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Base/Commands/NewItemCommand.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -62,7 +62,10 @@
var ed = orm.Open(res.ResourceID, conn, false, exp);
if (!string.IsNullOrEmpty(startPoint))
+ {
ed.EditorService.SuggestedSaveFolder = startPoint;
+ ed.EditorService.MarkDirty();
+ }
}
}
}
Modified: trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Base/Editor/ResourceEditorService.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -90,8 +90,7 @@
void OnResourcePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
- this.IsDirty = true;
- OnDirtyStateChanged();
+ MarkDirty();
}
void OnDirtyStateChanged()
@@ -107,6 +106,12 @@
private set;
}
+ public void MarkDirty()
+ {
+ this.IsDirty = true;
+ OnDirtyStateChanged();
+ }
+
public bool IsNew
{
get;
Modified: trunk/Tools/Maestro/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Base/Templates/DwfLoadProcedureItemTemplate.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -49,7 +49,14 @@
dlg.Filter = Properties.Resources.Filter_Dwf_Files;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
- return ObjectFactory.CreateLoadProcedure(conn, LoadType.Dwf, dlg.FileNames);
+ var proc = ObjectFactory.CreateLoadProcedure(conn, LoadType.Dwf, dlg.FileNames);
+ if (!string.IsNullOrEmpty(startPoint) && ResourceIdentifier.IsFolderResource(startPoint))
+ {
+ proc.SubType.RootPath = startPoint;
+ proc.SubType.SpatialDataSourcesPath = startPoint;
+ proc.SubType.LayersPath = startPoint;
+ }
+ return proc;
}
return null;
}
Modified: trunk/Tools/Maestro/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Base/Templates/SdfLoadProcedureItemTemplate.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -49,7 +49,14 @@
dlg.Filter = Properties.Resources.Filter_Sdf_Files;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
- return ObjectFactory.CreateLoadProcedure(conn, LoadType.Sdf, dlg.FileNames);
+ var proc = ObjectFactory.CreateLoadProcedure(conn, LoadType.Sdf, dlg.FileNames);
+ if (!string.IsNullOrEmpty(startPoint) && ResourceIdentifier.IsFolderResource(startPoint))
+ {
+ proc.SubType.RootPath = startPoint;
+ proc.SubType.SpatialDataSourcesPath = startPoint;
+ proc.SubType.LayersPath = startPoint;
+ }
+ return proc;
}
return null;
}
Modified: trunk/Tools/Maestro/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Base/Templates/ShpLoadProcedureItemTemplate.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -49,7 +49,14 @@
dlg.Filter = Properties.Resources.Filter_Shp_Files;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
- return ObjectFactory.CreateLoadProcedure(conn, LoadType.Shp, dlg.FileNames);
+ var proc = ObjectFactory.CreateLoadProcedure(conn, LoadType.Shp, dlg.FileNames);
+ if (!string.IsNullOrEmpty(startPoint) && ResourceIdentifier.IsFolderResource(startPoint))
+ {
+ proc.SubType.RootPath = startPoint;
+ proc.SubType.SpatialDataSourcesPath = startPoint;
+ proc.SubType.LayersPath = startPoint;
+ }
+ return proc;
}
}
return null;
Modified: trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Base/UI/SiteExplorer.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -119,11 +119,17 @@
var rid = new ResourceIdentifier(resId);
if (!rid.IsFolder)
resId = rid.ParentFolder;
-
+
//If this node is not initially expanded, we get NRE on refresh
ExpandNode(resId);
var path = _model.GetPathFromResourceId(resId);
+ while (path == null)
+ {
+ resId = ResourceIdentifier.GetParentFolder(resId);
+ path = _model.GetPathFromResourceId(resId);
+ }
+
var node = trvResources.FindNode(path, true);
if (node != null)
{
Modified: trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Editors/IEditorService.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -172,6 +172,11 @@
bool IsDirty { get; }
/// <summary>
+ /// Forces the edited resource to be marked as dirty
+ /// </summary>
+ void MarkDirty();
+
+ /// <summary>
/// Raised when the edited resource has changed
/// </summary>
event EventHandler DirtyStateChanged;
Modified: trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerSettingsSectionCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerSettingsSectionCtrl.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Editors/LayerDefinition/Vector/VectorLayerSettingsSectionCtrl.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -73,6 +73,9 @@
protected override void OnLoad(EventArgs e)
{
+ if (this.DesignMode)
+ return;
+
if (_cachedDesc == null)
_cachedDesc = _edsvc.FeatureService.DescribeFeatureSource(txtFeatureSource.Text);
Modified: trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadProcedureEditorCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadProcedureEditorCtrl.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadProcedureEditorCtrl.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -122,6 +122,11 @@
var result = pdlg.RunOperationAsync(this.ParentForm, worker, _ed, _lp);
MessageBox.Show(Properties.Resources.OperationCompleted);
_ed.RequestRefresh(_lp.SubType.RootPath);
+
+ //Load procedure may have modified this resource as part of executioin
+ _ed.SyncSessionCopy();
+ //HACK: Force dirty state as successful execution writes some extra XML content to the resource
+ _ed.MarkDirty();
}
catch (CancelException)
{
Modified: trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadTargetCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadTargetCtrl.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/LoadTargetCtrl.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -39,24 +39,42 @@
}
private IEditorService _service;
+ private ILoadProcedure _loadProc;
+ private IBaseLoadProcedure _fProc;
public override void Bind(IEditorService service)
{
service.RegisterCustomNotifier(this);
_service = service;
- var lp = _service.GetEditedResource() as ILoadProcedure;
- var fproc = lp.SubType;
-
- TextBoxBinder.BindText(txtTargetRoot, fproc, "RootPath");
- CheckBoxBinder.BindChecked(chkCreateFeatureSources, fproc, "GenerateSpatialDataSources");
- CheckBoxBinder.BindChecked(chkCreateLayers, fproc, "GenerateLayers");
- TextBoxBinder.BindText(txtFeatureSourceRoot, fproc, "SpatialDataSourcesPath");
- TextBoxBinder.BindText(txtFeatureFolderName, fproc, "SpatialDataSourcesFolder");
- TextBoxBinder.BindText(txtLayerRoot, fproc, "LayersPath");
- TextBoxBinder.BindText(txtLayerFolderName, fproc, "LayersFolder");
+ _loadProc = _service.GetEditedResource() as ILoadProcedure;
+ _fProc = _loadProc.SubType;
+
+ TextBoxBinder.BindText(txtTargetRoot, _fProc, "RootPath");
+ CheckBoxBinder.BindChecked(chkCreateFeatureSources, _fProc, "GenerateSpatialDataSources");
+ CheckBoxBinder.BindChecked(chkCreateLayers, _fProc, "GenerateLayers");
+ TextBoxBinder.BindText(txtFeatureSourceRoot, _fProc, "SpatialDataSourcesPath");
+ TextBoxBinder.BindText(txtFeatureFolderName, _fProc, "SpatialDataSourcesFolder");
+ TextBoxBinder.BindText(txtLayerRoot, _fProc, "LayersPath");
+ TextBoxBinder.BindText(txtLayerFolderName, _fProc, "LayersFolder");
+
+ _fProc.PropertyChanged += OnLoadProcedurePropertyChanged;
}
+ protected override void UnsubscribeEventHandlers()
+ {
+ if (_fProc != null)
+ {
+ _fProc.PropertyChanged -= OnLoadProcedurePropertyChanged;
+ }
+ base.UnsubscribeEventHandlers();
+ }
+
+ void OnLoadProcedurePropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ OnResourceChanged();
+ }
+
private void btnBrowseRoot_Click(object sender, EventArgs e)
{
txtTargetRoot.Text = _service.SelectFolder();
Modified: trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/SdfTransformationCtrl.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/SdfTransformationCtrl.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/Maestro.Editors/LoadProcedure/SdfTransformationCtrl.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -55,7 +55,7 @@
TextBoxBinder.BindText(txtCoordinateSystem, sdflp, "CoordinateSystem");
NumericBinder.BindValueChanged(numGeneralizePercentage, sdflp, "Generalization");
cmbSdfConflictStrategy.DataSource = Enum.GetValues(typeof(SdfKeyTreatmentType));
- ComboBoxBinder.BindSelectedIndexChanged(cmbSdfConflictStrategy, "SelectedItem", sdflp, "SdfKeyTreatement");
+ ComboBoxBinder.BindSelectedIndexChanged(cmbSdfConflictStrategy, "SelectedItem", sdflp, "SdfKeyTreatment");
}
private void btnBrowseCs_Click(object sender, EventArgs e)
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/Commands/ExecuteLoadProcedure.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -191,7 +191,7 @@
{
sproc.ResourceId.Add(it);
}
- this.Parent.ResourceService.SaveResourceAs(proc, this.ResourceID);
+ //Before we'd save here, but instead let's mark the resource as dirty from the user side
}
return resourcesCreatedOrUpdated;
}
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI/ObjectModels/FeatureSource.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -266,14 +266,24 @@
{
var sp = sc as SpatialContextType;
if (sp != null)
+ {
+ if (this.SupplementalSpatialContextInfo == null)
+ this.SupplementalSpatialContextInfo = new System.ComponentModel.BindingList<SpatialContextType>();
+
this.SupplementalSpatialContextInfo.Add(sp);
+ }
}
void IFeatureSource.RemoveSpatialContextOverride(ISpatialContextInfo sc)
{
var sp = sc as SpatialContextType;
if (sp != null)
+ {
+ if (this.SupplementalSpatialContextInfo == null)
+ return;
+
this.SupplementalSpatialContextInfo.Remove(sp);
+ }
}
[XmlIgnore]
Modified: trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs
===================================================================
--- trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs 2011-04-26 12:18:25 UTC (rev 5721)
+++ trunk/Tools/Maestro/OSGeo.MapGuide.MaestroAPI.Http/RequestBuilder.cs 2011-04-26 13:59:16 UTC (rev 5722)
@@ -363,7 +363,11 @@
{
foreach(string s in param.Keys)
{
- System.IO.MemoryStream content = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(param[s]));
+ string val = param[s];
+ if (string.IsNullOrEmpty(val))
+ continue;
+
+ System.IO.MemoryStream content = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(val));
AppendFormContent(s, null, boundary, responseStream, content, null);
}
}
More information about the mapguide-commits
mailing list