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
using ICSharpCode.TextEditor; using ICSharpCode.TextEditor;
using HtmlHelp2.Environment; using HtmlHelp2.Environment;
using HtmlHelp2.ResourcesHelperClass; using HtmlHelp2.ResourcesHelperClass;
using HtmlHelp2.SharpDevLanguageClass;
using MSHelpServices; using MSHelpServices;
@ -49,18 +50,12 @@ namespace HtmlHelp2
private StringCollection dynamicHelpTerms = new StringCollection(); private StringCollection dynamicHelpTerms = new StringCollection();
private string debugPreElement = String.Empty; private string debugPreElement = String.Empty;
private bool enableDebugInfo = true; private bool enableDebugInfo = true;
private Dictionary<string, string>languages = new Dictionary<string, string>();
public override Control Control public override Control Control
{ {
get { return dynamicHelpBrowser; } get { return dynamicHelpBrowser; }
} }
// public override void Dispose()
// {
// dynamicHelpBrowser.Dispose();
// }
public override void RedrawContent() public override void RedrawContent()
{ {
dynamicHelpBrowser.RedrawContent(); dynamicHelpBrowser.RedrawContent();
@ -73,47 +68,38 @@ namespace HtmlHelp2
PropertyPad.SelectedObjectChanged += new EventHandler(this.FormsDesignerSelectedObjectChanged); PropertyPad.SelectedObjectChanged += new EventHandler(this.FormsDesignerSelectedObjectChanged);
PropertyPad.SelectedGridItemChanged += new SelectedGridItemChangedEventHandler(this.FormsDesignerSelectedGridItemChanged); PropertyPad.SelectedGridItemChanged += new SelectedGridItemChangedEventHandler(this.FormsDesignerSelectedGridItemChanged);
ProjectService.SolutionClosed += new EventHandler(this.SolutionClosed); 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 #region WebBrowser Scripting
private void BuildDynamicHelpList(string expectedLanguage) private void BuildDynamicHelpList()
{ {
if(this.dynamicHelpTerms.Count == 0) return; if(this.dynamicHelpTerms.Count == 0) return;
this.RemoveAllChildren(); this.RemoveAllChildren();
this.debugPreElement = String.Empty; this.debugPreElement = String.Empty;
bool helpResults = false;
bool helpResults = false; Cursor.Current = Cursors.WaitCursor;
string tempLanguage = String.Empty; foreach(string currentHelpTerm in this.dynamicHelpTerms)
if(!languages.ContainsKey(expectedLanguage) ||
!languages.TryGetValue(expectedLanguage, out tempLanguage))
{ {
tempLanguage = expectedLanguage; helpResults = (this.CallDynamicHelp(currentHelpTerm, false) || helpResults);
} }
Cursor.Current = Cursors.WaitCursor; if(!helpResults)
foreach(string currentHelpTerm in dynamicHelpTerms)
{ {
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(); 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); 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; if(!HtmlHelp2Environment.IsReady || HtmlHelp2Environment.DynamicHelpIsBusy) return false;
bool result = false; bool result = false;
@ -136,7 +122,7 @@ namespace HtmlHelp2
List<IHxTopic> newTopics = this.SortTopics(topics); List<IHxTopic> newTopics = this.SortTopics(topics);
foreach(IHxTopic topic in newTopics) foreach(IHxTopic topic in newTopics)
{ {
if(expectedLanguage == String.Empty || topic.HasAttribute("DevLang", expectedLanguage)) if(SharpDevLanguage.CheckTopicLanguage(topic))
{ {
this.BuildNewChild(topic.Location, this.BuildNewChild(topic.Location,
topic.get_Title(HxTopicGetTitleType.HxTopicGetTOCTitle, topic.get_Title(HxTopicGetTitleType.HxTopicGetTOCTitle,
@ -194,9 +180,7 @@ namespace HtmlHelp2
this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName); this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName);
} }
WorkbenchSingleton.SafeThreadAsyncCall(this, WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList");
"BuildDynamicHelpList",
ProjectService.CurrentProject.Language);
} }
private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e)
@ -236,22 +220,24 @@ namespace HtmlHelp2
private void CallDynamicHelpForFormsDesigner(object selectedObject, GridItem selectedItem) private void CallDynamicHelpForFormsDesigner(object selectedObject, GridItem selectedItem)
{ {
if(selectedObject == null) return; try
this.dynamicHelpTerms.Clear();
Type myObject = selectedObject.GetType();
if(selectedItem != null)
{ {
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, WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList");
"BuildDynamicHelpList", }
ProjectService.CurrentProject.Language); catch {}
} }
#endregion #endregion
@ -635,7 +621,7 @@ namespace HtmlHelp2
string sectionName = sectionNode.Attributes.GetNamedItem("name").InnerText; string sectionName = sectionNode.Attributes.GetNamedItem("name").InnerText;
string url = urlNode.InnerText; string url = urlNode.InnerText;
string id = urlNode.Attributes.GetNamedItem("name").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
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using HtmlHelp2.Environment; using HtmlHelp2.Environment;
using HtmlHelp2.HelperDialog; using HtmlHelp2.HelperDialog;
using MSHelpServices; using MSHelpServices;
@ -268,7 +269,7 @@ namespace HtmlHelp2
matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord); matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord);
else else
matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags); matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags);
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
searchDialog.Dispose(); searchDialog.Dispose();
@ -285,26 +286,10 @@ namespace HtmlHelp2
lvi.Tag = topic; lvi.Tag = topic;
lvi.SubItems.Add(topic.Location); lvi.SubItems.Add(topic.Location);
lvi.SubItems.Add(topic.Rank.ToString()); lvi.SubItems.Add(topic.Rank.ToString());
searchResults.SearchResultsListView.Items.Add(lvi); 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; reuseMatches.Enabled = true;
} }
finally finally

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

@ -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