[mapguide-commits] r7161 - in trunk/Tools/Maestro/Maestro.AddIn.Scripting: Lang/Python Services
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Oct 29 01:20:20 PDT 2012
Author: jng
Date: 2012-10-29 01:20:20 -0700 (Mon, 29 Oct 2012)
New Revision: 7161
Modified:
trunk/Tools/Maestro/Maestro.AddIn.Scripting/Lang/Python/PythonConsoleCompletionDataProvider.cs
trunk/Tools/Maestro/Maestro.AddIn.Scripting/Services/ScriptingClasses.cs
Log:
#2161: Improve python auto-complete and add some extra convenience methods to HostApplication
Modified: trunk/Tools/Maestro/Maestro.AddIn.Scripting/Lang/Python/PythonConsoleCompletionDataProvider.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.Scripting/Lang/Python/PythonConsoleCompletionDataProvider.cs 2012-10-29 07:59:12 UTC (rev 7160)
+++ trunk/Tools/Maestro/Maestro.AddIn.Scripting/Lang/Python/PythonConsoleCompletionDataProvider.cs 2012-10-29 08:20:20 UTC (rev 7161)
@@ -34,6 +34,7 @@
using ICSharpCode.TextEditor.Gui.CompletionWindow;
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Text;
@@ -89,8 +90,10 @@
string GetName(string text)
{
- int startIndex = text.LastIndexOf(' ');
- return text.Substring(startIndex + 1);
+ int startIndex = text.LastIndexOfAny(new char[] { ' ', '+', '(' });
+ string res = text.Substring(startIndex + 1);
+ Debug.WriteLine("Evaluating python auto-complete options for: " + res);
+ return res;
}
/// <summary>
Modified: trunk/Tools/Maestro/Maestro.AddIn.Scripting/Services/ScriptingClasses.cs
===================================================================
--- trunk/Tools/Maestro/Maestro.AddIn.Scripting/Services/ScriptingClasses.cs 2012-10-29 07:59:12 UTC (rev 7160)
+++ trunk/Tools/Maestro/Maestro.AddIn.Scripting/Services/ScriptingClasses.cs 2012-10-29 08:20:20 UTC (rev 7161)
@@ -32,9 +32,13 @@
using Microsoft.Scripting.Runtime;
using Microsoft.Scripting.Hosting;
using Maestro.AddIn.Scripting.UI;
+using Maestro.Editors.Generic;
namespace Maestro.AddIn.Scripting.Services
{
+ /// <summary>
+ /// Helper class to inject the HostApplication object into the engine's global scope
+ /// </summary>
public static class ScriptHostSetup
{
internal static void SetupGlobalScope(ScriptEngine engine, LanguageContext context)
@@ -163,6 +167,98 @@
}
/// <summary>
+ /// Displays a resource picker for opening
+ /// </summary>
+ /// <param name="conn"></param>
+ /// <param name="resourceType"></param>
+ /// <returns></returns>
+ public string PickResourceOpen(IServerConnection conn, string resourceType)
+ {
+ Func<string> picker = () =>
+ {
+ using (var diag = new ResourcePicker(conn.ResourceService, (ResourceTypes)Enum.Parse(typeof(ResourceTypes), resourceType), ResourcePickerMode.OpenResource))
+ {
+ if (diag.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ return diag.ResourceID;
+ }
+ }
+ return null;
+ };
+ if (this.MainWindow.InvokeRequired)
+ {
+ var result = this.MainWindow.Invoke(picker);
+ if (result != null)
+ return result.ToString();
+ else
+ return null;
+ }
+ else
+ return picker();
+ }
+
+ /// <summary>
+ /// Displays a resource picker for saving
+ /// </summary>
+ /// <param name="conn"></param>
+ /// <param name="resourceType"></param>
+ /// <returns></returns>
+ public string PickResourceSave(IServerConnection conn, string resourceType)
+ {
+ Func<string> picker = () =>
+ {
+ using (var diag = new ResourcePicker(conn.ResourceService, (ResourceTypes)Enum.Parse(typeof(ResourceTypes), resourceType), ResourcePickerMode.SaveResource))
+ {
+ if (diag.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ return diag.ResourceID;
+ }
+ }
+ return null;
+ };
+ if (this.MainWindow.InvokeRequired)
+ {
+ var result = this.MainWindow.Invoke(picker);
+ if (result != null)
+ return result.ToString();
+ else
+ return null;
+ }
+ else
+ return picker();
+ }
+
+ /// <summary>
+ /// Prompts a dialog to select a folder
+ /// </summary>
+ /// <param name="conn"></param>
+ /// <returns></returns>
+ public string PickFolder(IServerConnection conn)
+ {
+ Func<string> picker = () =>
+ {
+ using (var diag = new ResourcePicker(conn.ResourceService, ResourcePickerMode.OpenFolder))
+ {
+ if (diag.ShowDialog() == System.Windows.Forms.DialogResult.OK)
+ {
+ return diag.ResourceID;
+ }
+ }
+ return null;
+ };
+ if (this.MainWindow.InvokeRequired)
+ {
+ var result = this.MainWindow.Invoke(picker);
+ if (result != null)
+ return result.ToString();
+ else
+ return null;
+ }
+ else
+ return picker();
+ }
+
+ /// <summary>
/// Opens the default editor for the specified resource
/// </summary>
/// <param name="conn"></param>
More information about the mapguide-commits
mailing list