Browse Source

dynamic help: fixed a little problem with the 'helpResults' bool

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@496 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mathias Simmack 20 years ago
parent
commit
52d9113431
  1. 76
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
  2. 21
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
  3. 71
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/SharpDevLanguageClass.cs

76
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs

@ -26,6 +26,7 @@ namespace HtmlHelp2 @@ -26,6 +26,7 @@ namespace HtmlHelp2
using ICSharpCode.TextEditor;
using HtmlHelp2.Environment;
using HtmlHelp2.ResourcesHelperClass;
using HtmlHelp2.SharpDevLanguageClass;
using MSHelpServices;
@ -49,18 +50,12 @@ namespace HtmlHelp2 @@ -49,18 +50,12 @@ namespace HtmlHelp2
private StringCollection dynamicHelpTerms = new StringCollection();
private string debugPreElement = String.Empty;
private bool enableDebugInfo = true;
private Dictionary<string, string>languages = new Dictionary<string, string>();
public override Control Control
{
get { return dynamicHelpBrowser; }
}
// public override void Dispose()
// {
// dynamicHelpBrowser.Dispose();
// }
public override void RedrawContent()
{
dynamicHelpBrowser.RedrawContent();
@ -73,47 +68,38 @@ namespace HtmlHelp2 @@ -73,47 +68,38 @@ namespace HtmlHelp2
PropertyPad.SelectedObjectChanged += new EventHandler(this.FormsDesignerSelectedObjectChanged);
PropertyPad.SelectedGridItemChanged += new SelectedGridItemChangedEventHandler(this.FormsDesignerSelectedGridItemChanged);
ProjectService.SolutionClosed += new EventHandler(this.SolutionClosed);
// I needed to patch SharpDevelop's current project language because
// the .NET Framework SDK documents use other names
languages.Add("C#", "CSharp");
languages.Add("VBNet", "VB");
}
#region WebBrowser Scripting
private void BuildDynamicHelpList(string expectedLanguage)
private void BuildDynamicHelpList()
{
if(this.dynamicHelpTerms.Count == 0) return;
this.RemoveAllChildren();
this.debugPreElement = String.Empty;
this.debugPreElement = String.Empty;
bool helpResults = false;
bool helpResults = false;
string tempLanguage = String.Empty;
if(!languages.ContainsKey(expectedLanguage) ||
!languages.TryGetValue(expectedLanguage, out tempLanguage))
Cursor.Current = Cursors.WaitCursor;
foreach(string currentHelpTerm in this.dynamicHelpTerms)
{
tempLanguage = expectedLanguage;
helpResults = (this.CallDynamicHelp(currentHelpTerm, false) || helpResults);
}
Cursor.Current = Cursors.WaitCursor;
foreach(string currentHelpTerm in dynamicHelpTerms)
if(!helpResults)
{
if(!currentHelpTerm.StartsWith("!"))
foreach(string currentHelpTerm in this.dynamicHelpTerms)
{
helpResults = (helpResults || this.CallDynamicHelp(currentHelpTerm, tempLanguage, false));
this.CallDynamicHelp(currentHelpTerm, true);
}
}
// TODO: implement keyword search, if "helpResults" is FALSE
dynamicHelpBrowser.BuildDefaultHelpEntries();
Cursor.Current = Cursors.Default;
Cursor.Current = Cursors.Default;
this.debugPreElement += String.Format("<br>Current project language: {0}", tempLanguage);
this.debugPreElement += String.Format("<br>Current project language: {0}",
SharpDevLanguage.GetPatchedLanguage());
if(this.enableDebugInfo) dynamicHelpBrowser.CreateDebugPre(this.debugPreElement);
}
private bool CallDynamicHelp(string searchTerm, string expectedLanguage, bool keywordSearch)
private bool CallDynamicHelp(string searchTerm, bool keywordSearch)
{
if(!HtmlHelp2Environment.IsReady || HtmlHelp2Environment.DynamicHelpIsBusy) return false;
bool result = false;
@ -136,7 +122,7 @@ namespace HtmlHelp2 @@ -136,7 +122,7 @@ namespace HtmlHelp2
List<IHxTopic> newTopics = this.SortTopics(topics);
foreach(IHxTopic topic in newTopics)
{
if(expectedLanguage == String.Empty || topic.HasAttribute("DevLang", expectedLanguage))
if(SharpDevLanguage.CheckTopicLanguage(topic))
{
this.BuildNewChild(topic.Location,
topic.get_Title(HxTopicGetTitleType.HxTopicGetTOCTitle,
@ -194,9 +180,7 @@ namespace HtmlHelp2 @@ -194,9 +180,7 @@ namespace HtmlHelp2
this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName);
}
WorkbenchSingleton.SafeThreadAsyncCall(this,
"BuildDynamicHelpList",
ProjectService.CurrentProject.Language);
WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList");
}
private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e)
@ -236,22 +220,24 @@ namespace HtmlHelp2 @@ -236,22 +220,24 @@ namespace HtmlHelp2
private void CallDynamicHelpForFormsDesigner(object selectedObject, GridItem selectedItem)
{
if(selectedObject == null) return;
this.dynamicHelpTerms.Clear();
Type myObject = selectedObject.GetType();
if(selectedItem != null)
try
{
foreach(Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label))
if(selectedObject == null) return;
this.dynamicHelpTerms.Clear();
Type myObject = selectedObject.GetType();
if(selectedItem != null)
{
this.AddToStringCollection(String.Format("{0}.{1}", type.FullName, selectedItem.Label));
foreach(Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label))
{
this.AddToStringCollection(String.Format("{0}.{1}", type.FullName, selectedItem.Label));
}
}
}
this.AddToStringCollection(myObject.FullName);
this.AddToStringCollection(myObject.FullName);
WorkbenchSingleton.SafeThreadAsyncCall(this,
"BuildDynamicHelpList",
ProjectService.CurrentProject.Language);
WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList");
}
catch {}
}
#endregion
@ -635,7 +621,7 @@ namespace HtmlHelp2 @@ -635,7 +621,7 @@ namespace HtmlHelp2
string sectionName = sectionNode.Attributes.GetNamedItem("name").InnerText;
string url = urlNode.InnerText;
string id = urlNode.Attributes.GetNamedItem("name").InnerText;
this.BuildNewChild(sectionName, id, url);
this.BuildNewChild(StringParser.Parse(sectionName), id, url);
}
}
}

21
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs

@ -13,6 +13,7 @@ namespace HtmlHelp2 @@ -13,6 +13,7 @@ namespace HtmlHelp2
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using HtmlHelp2.Environment;
using HtmlHelp2.HelperDialog;
using MSHelpServices;
@ -268,7 +269,7 @@ namespace HtmlHelp2 @@ -268,7 +269,7 @@ namespace HtmlHelp2
matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord);
else
matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags);
Cursor.Current = Cursors.Default;
searchDialog.Dispose();
@ -285,26 +286,10 @@ namespace HtmlHelp2 @@ -285,26 +286,10 @@ namespace HtmlHelp2
lvi.Tag = topic;
lvi.SubItems.Add(topic.Location);
lvi.SubItems.Add(topic.Rank.ToString());
searchResults.SearchResultsListView.Items.Add(lvi);
}
// for(int i = 1; i <= matchingTopics.Count; i++)
// {
// IHxTopic topic = matchingTopics.ItemAt(i);
//
// if(topic != null)
// {
// ListViewItem lvi = new ListViewItem();
// lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
// HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
// lvi.SubItems.Add(topic.Location);
// lvi.SubItems.Add(topic.Rank.ToString());
// lvi.Tag = topic;
//
// searchResults.SearchResultsListView.Items.Add(lvi);
// }
// }
reuseMatches.Enabled = true;
}
finally

71
src/AddIns/Misc/HtmlHelp2/Project/src/Service/SharpDevLanguageClass.cs

@ -0,0 +1,71 @@ @@ -0,0 +1,71 @@
/* ***********************************************************
*
* Help 2.0 Environment for SharpDevelop
* ProjectLanguage Class
* Copyright (c) 2005, Mathias Simmack. All rights reserved.
*
* ********************************************************* */
namespace HtmlHelp2.SharpDevLanguageClass
{
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Project;
using MSHelpServices;
public sealed class SharpDevLanguage
{
private static Dictionary<string, string>languages = new Dictionary<string, string>();
static SharpDevLanguage()
{
languages.Add("C#", "CSharp");
languages.Add("VBNet", "VB");
}
SharpDevLanguage()
{
}
public static bool CheckTopicLanguage(IHxTopic topic)
{
return CheckTopicLanguage(topic, ProjectService.CurrentProject.Language);
}
public static bool CheckTopicLanguage(IHxTopic topic, string expectedLanguage)
{
if(expectedLanguage == String.Empty) { return true; }
if(topic == null) { return false; }
string tempLanguage = String.Empty;
if(!languages.ContainsKey(expectedLanguage) ||
!languages.TryGetValue(expectedLanguage, out tempLanguage))
{
tempLanguage = expectedLanguage;
}
return (tempLanguage == String.Empty || topic.HasAttribute("DevLang", tempLanguage));
}
public static string GetPatchedLanguage()
{
return GetPatchedLanguage(ProjectService.CurrentProject.Language);
}
public static string GetPatchedLanguage(string expectedLanguage)
{
string tempLanguage = expectedLanguage;
if(tempLanguage != String.Empty)
{
if(!languages.ContainsKey(expectedLanguage) ||
!languages.TryGetValue(expectedLanguage, out tempLanguage))
{
tempLanguage = expectedLanguage;
}
}
return tempLanguage;
}
}
}
Loading…
Cancel
Save