Browse Source

some changes/fixes, LoggingService used

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@479 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mathias Simmack 21 years ago
parent
commit
b67164978b
  1. 249
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
  2. 66
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
  3. 76
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
  4. 3
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs
  5. 83
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
  6. 34
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs
  7. 13
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Options.cs
  8. 79
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs

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

@ -44,21 +44,17 @@ namespace HtmlHelp2 @@ -44,21 +44,17 @@ namespace HtmlHelp2
private int internalIndex = 0;
private StringCollection dynamicHelpTerms = new StringCollection();
private string debugPreElement = String.Empty;
private bool enableDebugInfo = true;
private bool enableDebugInfo = false;
public override Control Control
{
get { return dynamicHelpBrowser; }
}
public override void Dispose()
{
try
{
dynamicHelpBrowser.Dispose();
}
catch {}
}
// public override void Dispose()
// {
// dynamicHelpBrowser.Dispose();
// }
public override void RedrawContent()
{
@ -78,64 +74,47 @@ namespace HtmlHelp2 @@ -78,64 +74,47 @@ namespace HtmlHelp2
private void BuildDynamicHelpList(string expectedLanguage)
{
if(this.dynamicHelpTerms.Count == 0) return;
this.RemoveAllChildren();
this.debugPreElement = String.Empty;
try
Cursor.Current = Cursors.WaitCursor;
foreach(string currentHelpTerm in dynamicHelpTerms)
{
this.RemoveAllChildren();
this.debugPreElement = String.Empty;
bool result = false;
Cursor.Current = Cursors.WaitCursor;
foreach(string currentHelpTerm in dynamicHelpTerms)
{
if(currentHelpTerm.StartsWith("!") && !result)
{
result = this.CallDynamicHelp(currentHelpTerm.Substring(1), expectedLanguage, false);
}
else if(!currentHelpTerm.StartsWith("!"))
{
this.CallDynamicHelp(currentHelpTerm, expectedLanguage, false);
}
}
Cursor.Current = Cursors.Default;
if(this.enableDebugInfo) this.CreateDebugPre();
this.CallDynamicHelp(currentHelpTerm, expectedLanguage, false);
}
catch {}
Cursor.Current = Cursors.Default;
if(this.enableDebugInfo) this.CreateDebugPre();
}
private bool CallDynamicHelp(string searchTerm, string expectedLanguage, bool keywordSearch)
{
if(!HtmlHelp2Environment.IsReady || HtmlHelp2Environment.DynamicHelpIsBusy) return false;
bool result = false;
bool result = false;
IHxTopicList topics = null;
try
{
IHxTopicList topics = null;
if(keywordSearch) topics = HtmlHelp2Environment.GetMatchingTopicsForKeywordSearch(searchTerm);
else topics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchTerm);
result = (topics != null && topics.Count > 0);
this.debugPreElement += String.Format("{0} ({1}): {2} {3}<br>",
searchTerm, (keywordSearch)?"Kwd":"DH",
topics.Count.ToString(), (topics.Count == 1)?"topic":"topics");
}
catch {}
if(topics.Count > 0)
if(result)
{
List<IHxTopic> newTopics = this.SortTopics(topics);
foreach(IHxTopic topic in newTopics)
{
result = true;
List<IHxTopic> newTopics = this.SortTopics(topics);
// IHxTopic[] newTopics = this.SortTopics(topics);
foreach(IHxTopic topic in newTopics)
{
this.BuildNewChild(topic.Location,
topic.get_Title(HxTopicGetTitleType.HxTopicGetTOCTitle,
HxTopicGetTitleDefVal.HxTopicGetTitleFileName),
topic.URL);
}
this.BuildNewChild(topic.Location,
topic.get_Title(HxTopicGetTitleType.HxTopicGetTOCTitle,
HxTopicGetTitleDefVal.HxTopicGetTitleFileName),
topic.URL);
}
}
catch {}
return result;
}
@ -158,24 +137,20 @@ namespace HtmlHelp2 @@ -158,24 +137,20 @@ namespace HtmlHelp2
{
if(elem.GetAttribute("className") == "section")
{
try
{
HtmlElement sectionBlock = elem.FirstChild.NextSibling;
HtmlElement contentSpan = sectionBlock.NextSibling.NextSibling;
HtmlElement sectionBlock = elem.FirstChild.NextSibling;
HtmlElement contentSpan = sectionBlock.NextSibling.NextSibling;
if(sectionBlock.TagName == "B" && sectionBlock.InnerText == sectionName &&
contentSpan.TagName == "SPAN" && contentSpan.GetAttribute("className") == "content")
if(sectionBlock.TagName == "B" && sectionBlock.InnerText == sectionName &&
contentSpan.TagName == "SPAN" && contentSpan.GetAttribute("className") == "content")
{
if(!this.DoesLinkExist(contentSpan, topicName, topicUrl))
{
if(!this.DoesLinkExist(contentSpan, topicName, topicUrl))
{
contentSpan.AppendChild(this.CreateNewLink(topicUrl, topicName));
contentSpan.AppendChild(this.CreateABreak());
}
return;
contentSpan.AppendChild(this.CreateNewLink(topicUrl, topicName));
contentSpan.AppendChild(this.CreateABreak());
}
return;
}
catch {}
}
}
@ -191,7 +166,10 @@ namespace HtmlHelp2 @@ -191,7 +166,10 @@ namespace HtmlHelp2
this.internalIndex++;
}
catch {}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: cannot build node for dynamic help; " + ex.ToString());
}
}
private HtmlElement CreateNewSection(string sectionName, out HtmlElement linkNode)
@ -310,7 +288,10 @@ namespace HtmlHelp2 @@ -310,7 +288,10 @@ namespace HtmlHelp2
objArray[0] = (object)sectionId;
dynamicHelpBrowser.Document.InvokeScript("ExpandCollapse", objArray);
}
catch {}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: cannot run script; " + ex.ToString());
}
}
private void OnLinkClick(object sender, HtmlElementEventArgs e)
@ -326,43 +307,39 @@ namespace HtmlHelp2 @@ -326,43 +307,39 @@ namespace HtmlHelp2
#region Taken from DefinitionView.cs
private void UpdateTick(object sender, ParserUpdateStepEventArgs e)
{
try
{
this.dynamicHelpTerms.Clear();
this.dynamicHelpTerms.Clear();
ResolveResult res = ResolveAtCaret(e);
if(res == null) return;
ResolveResult res = ResolveAtCaret(e);
if(res == null) return;
if(res != null && res.ResolvedType != null)
{
this.AddToStringCollection(res.ResolvedType.FullyQualifiedName);
}
if(res != null && res.ResolvedType != null)
{
this.AddToStringCollection(res.ResolvedType.FullyQualifiedName);
}
MemberResolveResult member = res as MemberResolveResult;
NamespaceResolveResult nspace = res as NamespaceResolveResult;
MethodResolveResult method = res as MethodResolveResult;
TypeResolveResult types = res as TypeResolveResult;
MemberResolveResult member = res as MemberResolveResult;
NamespaceResolveResult nspace = res as NamespaceResolveResult;
MethodResolveResult method = res as MethodResolveResult;
TypeResolveResult types = res as TypeResolveResult;
if(member != null && member.ResolvedMember != null)
{
this.AddToStringCollection(0, member.ResolvedMember.FullyQualifiedName);
}
if(nspace != null)
{
this.AddToStringCollection(0, nspace.Name);
}
if(method != null && method.ContainingType != null)
{
this.AddToStringCollection(0, method.ContainingType.FullyQualifiedName);
}
if(types != null && types.ResolvedClass != null)
{
this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName);
}
WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList", "");
if(member != null && member.ResolvedMember != null)
{
this.AddToStringCollection(0, member.ResolvedMember.FullyQualifiedName);
}
catch {}
if(nspace != null)
{
this.AddToStringCollection(0, nspace.Name);
}
if(method != null && method.ContainingType != null)
{
this.AddToStringCollection(0, method.ContainingType.FullyQualifiedName);
}
if(types != null && types.ResolvedClass != null)
{
this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName);
}
WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList", "");
}
private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e)
@ -403,28 +380,19 @@ namespace HtmlHelp2 @@ -403,28 +380,19 @@ namespace HtmlHelp2
private void CallDynamicHelpForFormsDesigner(object selectedObject, GridItem selectedItem)
{
if(selectedObject == null) return;
this.dynamicHelpTerms.Clear();
try
Type myObject = selectedObject.GetType();
if(selectedItem != null)
{
this.dynamicHelpTerms.Clear();
Type myObject = selectedObject.GetType();
if(selectedItem != null)
foreach(Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label))
{
foreach(Type type in TypeHandling.FindDeclaringType(myObject, selectedItem.Label))
{
this.AddToStringCollection(String.Format("{0}.{1}",
type.FullName,
selectedItem.Label));
}
this.AddToStringCollection(String.Format("{0}.{1}", type.FullName, selectedItem.Label));
}
this.AddToStringCollection(myObject.FullName);
WorkbenchSingleton.SafeThreadAsyncCall(this,
"BuildDynamicHelpList",
"");
}
catch {}
this.AddToStringCollection(myObject.FullName);
WorkbenchSingleton.SafeThreadAsyncCall(this, "BuildDynamicHelpList", "");
}
#endregion
@ -435,8 +403,10 @@ namespace HtmlHelp2 @@ -435,8 +403,10 @@ namespace HtmlHelp2
try
{
dynamicHelpBrowser.Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.BeforeEnd, this.CreateABreak());
dynamicHelpBrowser.Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.BeforeEnd, this.CreateABreak());
dynamicHelpBrowser.Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.BeforeEnd,
this.CreateABreak());
dynamicHelpBrowser.Document.Body.InsertAdjacentElement(HtmlElementInsertionOrientation.BeforeEnd,
this.CreateABreak());
HtmlElement pre = dynamicHelpBrowser.CreateHtmlElement("pre");
pre.InnerHtml = "--- Dynamic Help Debug ---<br>" + this.debugPreElement;
@ -484,7 +454,10 @@ namespace HtmlHelp2 @@ -484,7 +454,10 @@ namespace HtmlHelp2
result.Sort(topicComparer);
}
}
catch {}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: error while rebuild topics; " + ex.ToString());
}
return result;
}
@ -530,33 +503,18 @@ namespace HtmlHelp2 @@ -530,33 +503,18 @@ namespace HtmlHelp2
public void RemoveAllChildren()
{
try
{
axWebBrowser.Document.Body.InnerHtml = "";
}
catch {}
axWebBrowser.Document.Body.InnerHtml = "";
}
public HtmlElement CreateHtmlElement(string elementName)
{
try
{
HtmlElement newElement = axWebBrowser.Document.CreateElement(elementName);
return newElement;
}
catch
{
return null;
}
HtmlElement newElement = axWebBrowser.Document.CreateElement(elementName);
return newElement;
}
public void InsertHtmlElement(HtmlElementInsertionOrientation insertWhere, HtmlElement insertWhat)
{
try
{
axWebBrowser.Document.Body.InsertAdjacentElement(insertWhere, insertWhat);
}
catch {}
axWebBrowser.Document.Body.InsertAdjacentElement(insertWhere, insertWhat);
}
@ -580,14 +538,15 @@ namespace HtmlHelp2 @@ -580,14 +538,15 @@ namespace HtmlHelp2
Size = new Size(500, 500);
Controls.Add(axWebBrowser);
axWebBrowser.Dock = DockStyle.Fill;
axWebBrowser.WebBrowserShortcutsEnabled = false;
axWebBrowser.Dock = DockStyle.Fill;
axWebBrowser.WebBrowserShortcutsEnabled = false;
axWebBrowser.IsWebBrowserContextMenuEnabled = false;
axWebBrowser.AllowWebBrowserDrop = false;
axWebBrowser.AllowWebBrowserDrop = false;
Controls.Add(dynamicHelpToolbar);
dynamicHelpToolbar.Dock = DockStyle.Top;
dynamicHelpToolbar.AllowItemReorder = false;
dynamicHelpToolbar.Dock = DockStyle.Top;
dynamicHelpToolbar.AllowItemReorder = false;
dynamicHelpToolbar.Enabled = HtmlHelp2Environment.IsReady;
for(int i = 0; i < toolbarButtons.Length; i++)
{
ToolStripButton button = new ToolStripButton();
@ -612,15 +571,13 @@ namespace HtmlHelp2 @@ -612,15 +571,13 @@ namespace HtmlHelp2
private void LoadDynamicHelpPage()
{
try
{
string url = String.Format("{0}\\context.html",
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
if(!HtmlHelp2Environment.IsReady) return;
if(!File.Exists(url)) url = "about:blank";
axWebBrowser.Navigate(url);
}
catch {}
string url = String.Format("{0}\\context.html",
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
if(!File.Exists(url)) url = "about:blank";
axWebBrowser.Navigate(url);
}
private void ToolStripButtonClicked(object sender, EventArgs e)

66
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs

@ -67,11 +67,7 @@ namespace HtmlHelp2 @@ -67,11 +67,7 @@ namespace HtmlHelp2
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if(disposing && indexControl != null)
{
indexControl.Dispose();
}
if(disposing && indexControl != null) { indexControl.Dispose(); }
}
public void RedrawContent()
@ -102,8 +98,9 @@ namespace HtmlHelp2 @@ -102,8 +98,9 @@ namespace HtmlHelp2
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);
}
catch
catch(Exception ex)
{
LoggingService.Error("Help 2.0: Index control failed; " + ex.ToString());
this.FakeHelpControl();
}
}
@ -163,39 +160,30 @@ namespace HtmlHelp2 @@ -163,39 +160,30 @@ namespace HtmlHelp2
public void LoadIndex()
{
try
{
searchTerm.Text = "";
searchTerm.Items.Clear();
indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.CurrentFilterQuery);
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
}
catch {}
searchTerm.Text = "";
searchTerm.Items.Clear();
indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.CurrentFilterQuery);
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
}
private void FilterChanged(object sender, EventArgs e)
{
string selectedString = filterCombobox.SelectedItem.ToString();
string selectedString = filterCombobox.SelectedItem.ToString();
if(selectedString != "")
{
try
{
Cursor.Current = Cursors.WaitCursor;
indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(selectedString));
Cursor.Current = Cursors.Default;
}
catch {}
Cursor.Current = Cursors.WaitCursor;
indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(selectedString));
Cursor.Current = Cursors.Default;
}
}
#region Help 2.0 Environment Events
private void FilterQueryChanged(object sender, EventArgs e)
{
indexControl.Refresh();
Application.DoEvents();
string currentFilterName = filterCombobox.SelectedItem.ToString();
if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
@ -255,7 +243,8 @@ namespace HtmlHelp2 @@ -255,7 +243,8 @@ namespace HtmlHelp2
if(indexResults == null)
return;
try {
try
{
IHxTopicList matchingTopics = indexControl.IndexData.GetTopicsFromSlot(indexSlot);
try
@ -263,18 +252,14 @@ namespace HtmlHelp2 @@ -263,18 +252,14 @@ namespace HtmlHelp2
((HtmlHelp2IndexResultsPad)indexResults.PadContent).CleanUp();
((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.BeginUpdate();
for(int i = 1; i <= matchingTopics.Count; i++)
foreach(IHxTopic topic in matchingTopics)
{
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.Tag = topic;
((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.Items.Add(lvi);
}
ListViewItem lvi = new ListViewItem();
lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
lvi.Tag = topic;
lvi.SubItems.Add(topic.Location);
((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.Items.Add(lvi);
}
}
finally
@ -297,7 +282,10 @@ namespace HtmlHelp2 @@ -297,7 +282,10 @@ namespace HtmlHelp2
break;
}
}
catch {}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: cannot get matching index entries; " + ex.ToString());
}
}
}
}

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

@ -170,11 +170,7 @@ namespace HtmlHelp2 @@ -170,11 +170,7 @@ namespace HtmlHelp2
object selectedItem = filterCombobox.SelectedItem;
if(selectedItem != null)
{
try
{
selectedQuery = HtmlHelp2Environment.FindFilterQuery(selectedItem.ToString());
}
catch {}
selectedQuery = HtmlHelp2Environment.FindFilterQuery(selectedItem.ToString());
}
}
@ -195,16 +191,11 @@ namespace HtmlHelp2 @@ -195,16 +191,11 @@ namespace HtmlHelp2
private void NamespaceReloaded(object sender, EventArgs e)
{
try
{
searchTerm.Text = "";
searchTerm.Items.Clear();
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
}
catch {}
searchTerm.Text = "";
searchTerm.Items.Clear();
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
}
#endregion
@ -272,20 +263,13 @@ namespace HtmlHelp2 @@ -272,20 +263,13 @@ namespace HtmlHelp2
{{"0", searchWord}});
searchDialog.Show();
Application.DoEvents();
Cursor.Current = Cursors.WaitCursor;
Cursor.Current = Cursors.WaitCursor;
if(useDynamicHelp)
{
matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord);
}
else
{
matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags);
}
Cursor.Current = Cursors.Default;
Cursor.Current = Cursors.Default;
searchDialog.Dispose();
try
@ -293,23 +277,34 @@ namespace HtmlHelp2 @@ -293,23 +277,34 @@ namespace HtmlHelp2
searchResults.CleanUp();
searchResults.SearchResultsListView.BeginUpdate();
for(int i = 1; i <= matchingTopics.Count; i++)
foreach(IHxTopic topic in matchingTopics)
{
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);
}
ListViewItem lvi = new ListViewItem();
lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
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
@ -320,7 +315,10 @@ namespace HtmlHelp2 @@ -320,7 +315,10 @@ namespace HtmlHelp2
searchIsBusy = false;
}
}
catch {}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: cannot get matching search word; " + ex.ToString());
}
}
public bool PerformF1FTS(string keyword)

3
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs

@ -30,8 +30,7 @@ namespace HtmlHelp2 @@ -30,8 +30,7 @@ namespace HtmlHelp2
{
get
{
if (instance == null)
instance = new HtmlHelp2SearchResultsView();
if (instance == null) instance = new HtmlHelp2SearchResultsView();
return instance;
}
}

83
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs

@ -44,11 +44,7 @@ namespace HtmlHelp2 @@ -44,11 +44,7 @@ namespace HtmlHelp2
public override void Dispose()
{
try
{
help2TocControl.Dispose();
}
catch {}
help2TocControl.Dispose();
}
public override void RedrawContent()
@ -64,29 +60,17 @@ namespace HtmlHelp2 @@ -64,29 +60,17 @@ namespace HtmlHelp2
public void SyncToc(string topicUrl)
{
try
{
help2TocControl.SynToc(topicUrl);
}
catch {}
help2TocControl.SynToc(topicUrl);
}
public void GetPrevFromNode()
{
try
{
help2TocControl.GetPrevFromNode();
}
catch {}
help2TocControl.GetPrevFromNode();
}
public void GetNextFromNode()
{
try
{
help2TocControl.GetNextFromNode();
}
catch {}
help2TocControl.GetNextFromNode();
}
public bool IsNotFirstNode
@ -112,11 +96,7 @@ namespace HtmlHelp2 @@ -112,11 +96,7 @@ namespace HtmlHelp2
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if(disposing && tocControl != null)
{
tocControl.Dispose();
}
if(disposing && tocControl != null) { tocControl.Dispose(); }
}
public void RedrawContent()
@ -155,8 +135,9 @@ namespace HtmlHelp2 @@ -155,8 +135,9 @@ namespace HtmlHelp2
printPopup.Items.Add(printChildTopics);
printChildTopics.Click += new EventHandler(this.PrintTopicAndSubtopics);
}
catch
catch(Exception ex)
{
LoggingService.Error("Help 2.0: TOC control failed; " + ex.ToString());
this.FakeHelpControl();
}
}
@ -203,14 +184,10 @@ namespace HtmlHelp2 @@ -203,14 +184,10 @@ namespace HtmlHelp2
public void LoadToc()
{
try
{
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery);
filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
}
catch {}
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery);
filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
}
private void FilterChanged(object sender, EventArgs e)
@ -219,20 +196,16 @@ namespace HtmlHelp2 @@ -219,20 +196,16 @@ namespace HtmlHelp2
if(selectedString != null && selectedString != "")
{
try
{
Cursor.Current = Cursors.WaitCursor;
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(selectedString));
Cursor.Current = Cursors.Default;
}
catch {}
Cursor.Current = Cursors.WaitCursor;
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(selectedString));
Cursor.Current = Cursors.Default;
}
}
#region Help 2.0 Environment Events
private void FilterQueryChanged(object sender, EventArgs e)
{
tocControl.Refresh();
Application.DoEvents();
string currentFilterName = filterCombobox.SelectedItem.ToString();
if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
@ -306,33 +279,21 @@ namespace HtmlHelp2 @@ -306,33 +279,21 @@ namespace HtmlHelp2
#region published Help2 TOC Commands
public void SynToc(string topicUrl)
{
try
{
tocControl.Synchronize(topicUrl);
}
catch {}
tocControl.Synchronize(topicUrl);
}
public void GetNextFromNode()
{
try
{
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
string TopicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(TopicUrl,true);
}
catch {}
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
string TopicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(TopicUrl,true);
}
public void GetPrevFromNode()
{
try
{
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
string TopicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(TopicUrl,true);
}
catch {}
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
string TopicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(TopicUrl,true);
}
public bool IsNotFirstNode

34
src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs

@ -10,39 +10,43 @@ namespace HtmlHelp2.RegistryWalker @@ -10,39 +10,43 @@ namespace HtmlHelp2.RegistryWalker
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using ICSharpCode.Core;
using MSHelpServices;
public sealed class Help2RegistryWalker
{
public static void BuildNamespacesList(ComboBox help2Collections, string selectedHelp2Collection)
{
if(help2Collections == null)
return;
if(help2Collections == null) return;
help2Collections.Items.Clear();
help2Collections.BeginUpdate();
try
{
string currentDescription = "";
HxRegistryWalker regWalker = new HxRegistryWalker();
string currentDescription = "";
HxRegistryWalker regWalker = new HxRegistryWalker();
IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList("");
foreach(IHxRegNamespace currentNamespace in namespaces)
{
help2Collections.Items.Add((string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription));
if(selectedHelp2Collection != "" && String.Compare(selectedHelp2Collection, currentNamespace.Name) == 0)
if(selectedHelp2Collection != "" &&
String.Compare(selectedHelp2Collection, currentNamespace.Name) == 0)
{
currentDescription = (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription);
}
}
if(currentDescription != "") help2Collections.SelectedIndex = help2Collections.Items.IndexOf(currentDescription);
else help2Collections.SelectedIndex = 0;
if(currentDescription != "")
help2Collections.SelectedIndex = help2Collections.Items.IndexOf(currentDescription);
else
help2Collections.SelectedIndex = 0;
}
catch
{
LoggingService.Error("Help 2.0: cannot build namespaces list for Options dialog");
}
catch {}
help2Collections.EndUpdate();
}
@ -51,23 +55,23 @@ namespace HtmlHelp2.RegistryWalker @@ -51,23 +55,23 @@ namespace HtmlHelp2.RegistryWalker
{
try
{
HxRegistryWalker regWalker = new HxRegistryWalker();
HxRegistryWalker regWalker = new HxRegistryWalker();
IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList("");
foreach(IHxRegNamespace currentNamespace in namespaces)
{
if(String.Compare(namespaceDescription, (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription)) == 0)
string currentNamespaceName = (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription);
if(String.Compare(namespaceDescription, currentNamespaceName) == 0)
{
return currentNamespace.Name;
}
}
return "";
}
catch
{
return "";
LoggingService.Error("Help 2.0: cannot find selected namespace name");
}
return "";
}
public static string GetFirstNamespace(string namespaceName)

13
src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Options.cs

@ -63,11 +63,7 @@ namespace HtmlHelp2.OptionsPanel @@ -63,11 +63,7 @@ namespace HtmlHelp2.OptionsPanel
{
if(help2Collections.SelectedItem != null)
{
try
{
selectedHelp2Collection = Help2RegistryWalker.GetNamespaceName(help2Collections.SelectedItem.ToString());
}
catch {}
selectedHelp2Collection = Help2RegistryWalker.GetNamespaceName(help2Collections.SelectedItem.ToString());
}
}
@ -84,8 +80,13 @@ namespace HtmlHelp2.OptionsPanel @@ -84,8 +80,13 @@ namespace HtmlHelp2.OptionsPanel
xmldoc.DocumentElement.AppendChild(node);
xmldoc.Save(PropertyService.ConfigDirectory + help2EnvironmentFile);
LoggingService.Info("Help 2.0: new configuration saved");
}
catch
{
LoggingService.Error("Help 2.0: error while trying to save configuration");
}
catch {}
}
#region ReRegister

79
src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs

@ -92,8 +92,14 @@ namespace HtmlHelp2.Environment @@ -92,8 +92,14 @@ namespace HtmlHelp2.Environment
XmlNode node = xmldoc.SelectSingleNode("/help2environment/collection");
if(node != null) DefaultNamespaceName = node.InnerText;
LoggingService.Info(String.Format("Help 2.0: using \"{0}\" as default namespace",
DefaultNamespaceName));
}
catch
{
LoggingService.Info("Help 2.0: using default configuration");
}
catch {}
}
public static void ReloadNamespace()
@ -131,35 +137,24 @@ namespace HtmlHelp2.Environment @@ -131,35 +137,24 @@ namespace HtmlHelp2.Environment
ReloadDynamicHelpSystem();
initDialog.Dispose();
LoggingService.Info("Help 2.0: service sucessfully loaded");
}
catch
catch(Exception ex)
{
LoggingService.Error("Help 2.0: not initialize service; " + ex.ToString());
session = null;
}
}
private static void ReloadFTSSystem()
{
try
{
fulltextSearch = (IHxQuery)session.GetNavigationInterface("!DefaultFullTextSearch", currentSelectedFilterQuery, ref QueryGuid);
}
catch
{
fulltextSearch = null;
}
fulltextSearch = (IHxQuery)session.GetNavigationInterface("!DefaultFullTextSearch", currentSelectedFilterQuery, ref QueryGuid);
}
private static void ReloadDynamicHelpSystem()
{
try
{
dynamicHelp = (IHxIndex)session.GetNavigationInterface("!DefaultContextWindowIndex", currentSelectedFilterQuery, ref IndexGuid);
}
catch
{
dynamicHelp = null;
}
dynamicHelp = (IHxIndex)session.GetNavigationInterface("!DefaultContextWindowIndex", currentSelectedFilterQuery, ref IndexGuid);
}
private static void ReloadDefaultPages()
@ -174,7 +169,9 @@ namespace HtmlHelp2.Environment @@ -174,7 +169,9 @@ namespace HtmlHelp2.Environment
try
{
IHxIndex namedUrlIndex = (IHxIndex)session.GetNavigationInterface("!DefaultNamedUrlIndex", "", ref IndexGuid);
IHxIndex namedUrlIndex = (IHxIndex)session.GetNavigationInterface("!DefaultNamedUrlIndex",
"",
ref IndexGuid);
IHxTopicList topics = null;
topics = namedUrlIndex.GetTopicsFromString(pageName, 0);
@ -207,6 +204,7 @@ namespace HtmlHelp2.Environment @@ -207,6 +204,7 @@ namespace HtmlHelp2.Environment
}
catch
{
LoggingService.Error("Help 2.0: cannot connect to IHxHierarchy interface (TOC)");
return null;
}
}
@ -220,6 +218,7 @@ namespace HtmlHelp2.Environment @@ -220,6 +218,7 @@ namespace HtmlHelp2.Environment
}
catch
{
LoggingService.Error("Help 2.0: cannot connect to IHxIndex interface (Index)");
return null;
}
}
@ -231,25 +230,23 @@ namespace HtmlHelp2.Environment @@ -231,25 +230,23 @@ namespace HtmlHelp2.Environment
try
{
for(int i = 1; i <= namespaceFilters.Count; i++)
foreach(IHxRegFilter filter in namespaceFilters)
{
IHxRegFilter filter = namespaceFilters.ItemAt(i);
string filterName = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterName);
string filterName = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterName);
filterCombobox.Items.Add(filterName);
if(currentSelectedFilterName == "" && i == 1)
{
currentSelectedFilterName = filterName;
}
if(currentSelectedFilterName == "") currentSelectedFilterName = filterName;
}
if(namespaceFilters.Count == 0)
filterCombobox.Items.Add(StringParser.Parse("${res:AddIns.HtmlHelp2.DefaultEmptyFilter}"));
if(currentSelectedFilterName == "") filterCombobox.SelectedIndex = 0;
else filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(currentSelectedFilterName);
else filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(currentSelectedFilterName);
}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: cannot build filters; " + ex.ToString());
}
catch {}
filterCombobox.EndUpdate();
}
@ -281,33 +278,37 @@ namespace HtmlHelp2.Environment @@ -281,33 +278,37 @@ namespace HtmlHelp2.Environment
public static IHxTopicList GetMatchingTopicsForDynamicHelp(string searchTerm)
{
if(dynamicHelpIsBusy) return null;
IHxTopicList topics = null;
dynamicHelpIsBusy = true;
try
{
dynamicHelpIsBusy = true;
IHxTopicList topics = ((IHxIndex)dynamicHelp).GetTopicsFromString(searchTerm, 0);
return topics;
topics = ((IHxIndex)dynamicHelp).GetTopicsFromString(searchTerm, 0);
}
finally
catch
{
dynamicHelpIsBusy = false;
LoggingService.Error("Help 2.0: Dynamic Help search failed");
}
dynamicHelpIsBusy = false;
return topics;
}
public static IHxTopicList GetMatchingTopicsForKeywordSearch(string searchTerm)
{
if(dynamicHelpIsBusy) return null;
IHxTopicList topics = null;
dynamicHelpIsBusy = true;
try
{
dynamicHelpIsBusy = true;
IHxTopicList topics = GetIndex(currentSelectedFilterQuery).GetTopicsFromString(searchTerm, 0);
return topics;
topics = GetIndex(currentSelectedFilterQuery).GetTopicsFromString(searchTerm, 0);
}
finally
catch
{
dynamicHelpIsBusy = false;
LoggingService.Error("Help 2.0: Keyword search failed");
}
dynamicHelpIsBusy = false;
return topics;
}
#endregion

Loading…
Cancel
Save