Browse Source

Help 2.0: rewritten code for the controls to support empty/broken collections without getting errors

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1526 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mathias Simmack 19 years ago
parent
commit
974286edc4
  1. 10
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
  2. 108
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
  3. 1
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs
  4. 46
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
  5. 1
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs
  6. 128
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
  7. 15
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs
  8. 19
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Options.cs
  9. 47
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs

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

@ -114,7 +114,7 @@ namespace HtmlHelp2 @@ -114,7 +114,7 @@ namespace HtmlHelp2
private bool CallDynamicHelp(string searchTerm, bool keywordSearch)
{
if (!HtmlHelp2Environment.IsReady || HtmlHelp2Environment.DynamicHelpIsBusy)
if (!HtmlHelp2Environment.SessionIsInitialized || HtmlHelp2Environment.DynamicHelpIsBusy)
{
return false;
}
@ -363,7 +363,6 @@ namespace HtmlHelp2 @@ -363,7 +363,6 @@ namespace HtmlHelp2
dynamicHelpToolbar.AllowItemReorder = false;
dynamicHelpToolbar.ShowItemToolTips = false;
dynamicHelpToolbar.GripStyle = ToolStripGripStyle.Hidden;
dynamicHelpToolbar.Enabled = HtmlHelp2Environment.IsReady;
for (int i = 0; i < toolbarButtons.Length; i++)
{
ToolStripButton button = new ToolStripButton();
@ -382,7 +381,7 @@ namespace HtmlHelp2 @@ -382,7 +381,7 @@ namespace HtmlHelp2
dynamicHelpToolbar.ImageList.Images.Add(ResourcesHelper.GetBitmap("HtmlHelp2.16x16.Index.png"));
dynamicHelpToolbar.ImageList.Images.Add(ResourcesHelper.GetBitmap("HtmlHelp2.16x16.Search.png"));
if (HtmlHelp2Environment.IsReady)
if (HtmlHelp2Environment.SessionIsInitialized)
{
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
}
@ -390,11 +389,6 @@ namespace HtmlHelp2 @@ -390,11 +389,6 @@ namespace HtmlHelp2
public void LoadDynamicHelpPage()
{
if (!HtmlHelp2Environment.IsReady)
{
return;
}
string url = String.Format("res://{0}/context", Assembly.GetExecutingAssembly().Location);
axWebBrowser.Navigate(url);
}

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

@ -61,8 +61,9 @@ namespace HtmlHelp2 @@ -61,8 +61,9 @@ namespace HtmlHelp2
ComboBox searchTerm = new ComboBox();
Label label1 = new Label();
Label label2 = new Label();
Label infoLabel = new Label();
bool indexControlFailed = false;
bool itemClicked = false;
bool isEnabled = false;
protected override void Dispose(bool disposing)
{
@ -75,10 +76,47 @@ namespace HtmlHelp2 @@ -75,10 +76,47 @@ namespace HtmlHelp2
public MsHelp2IndexControl()
{
this.isEnabled = (HtmlHelp2Environment.IsReady &&
Help2ControlsValidation.IsIndexControlRegistered);
this.InitializeComponents();
this.UpdateControls();
if (this.isEnabled)
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
}
private void UpdateControls()
{
filterCombobox.Enabled =
(HtmlHelp2Environment.SessionIsInitialized && !this.indexControlFailed);
searchTerm.Enabled =
(HtmlHelp2Environment.SessionIsInitialized && !this.indexControlFailed);
infoLabel.Visible = false;
if (this.indexControlFailed)
{
this.ShowInfoMessage
(StringParser.Parse("${res:AddIns.HtmlHelp2.HelpSystemNotAvailable}"));
}
else if (!HtmlHelp2Environment.SessionIsInitialized)
{
if (indexControl != null) indexControl.Visible = false;
this.ShowInfoMessage
("${res:AddIns.HtmlHelp2.HelpCollectionMayBeEmpty}");
}
else
{
indexControl.Visible = true;
this.LoadIndex();
}
}
private void InitializeComponents()
{
infoLabel.Dock = DockStyle.Fill;
infoLabel.Visible = false;
infoLabel.TextAlign = ContentAlignment.MiddleCenter;
Controls.Add(infoLabel);
if (Help2ControlsValidation.IsIndexControlRegistered)
{
try
{
@ -93,15 +131,16 @@ namespace HtmlHelp2 @@ -93,15 +131,16 @@ namespace HtmlHelp2
indexControl.BorderStyle = HxBorderStyle.HxBorderStyle_FixedSingle;
indexControl.FontSource = HxFontSourceConstant.HxFontExternal;
}
catch (Exception ex)
catch (System.Runtime.InteropServices.COMException ex)
{
LoggingService.Error("Help 2.0: Index control failed; " + ex.ToString());
this.FakeHelpControl();
this.indexControlFailed = true;
}
}
else
catch (Exception ex)
{
this.FakeHelpControl();
LoggingService.Error("Help 2.0: Index control failed; " + ex.ToString());
this.indexControlFailed = true;
}
}
Panel panel1 = new Panel();
@ -113,14 +152,13 @@ namespace HtmlHelp2 @@ -113,14 +152,13 @@ namespace HtmlHelp2
filterCombobox.Dock = DockStyle.Top;
filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
filterCombobox.Sorted = true;
filterCombobox.Enabled = this.isEnabled;
filterCombobox.Enabled = false;
filterCombobox.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
Controls.Add(label1);
label1.Dock = DockStyle.Top;
label1.TextAlign = ContentAlignment.MiddleLeft;
label1.Enabled = this.isEnabled;
label1.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
Panel panel2 = new Panel();
@ -130,7 +168,7 @@ namespace HtmlHelp2 @@ -130,7 +168,7 @@ namespace HtmlHelp2
panel2.Controls.Add(searchTerm);
searchTerm.Dock = DockStyle.Top;
searchTerm.Enabled = this.isEnabled;
searchTerm.Enabled = false;
searchTerm.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
searchTerm.TextChanged += new EventHandler(this.SearchTextChanged);
searchTerm.KeyPress += new KeyPressEventHandler(this.SearchKeyPress);
@ -138,30 +176,20 @@ namespace HtmlHelp2 @@ -138,30 +176,20 @@ namespace HtmlHelp2
Controls.Add(label2);
label2.Dock = DockStyle.Top;
label2.TextAlign = ContentAlignment.MiddleLeft;
label2.Enabled = this.isEnabled;
label2.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.RedrawContent();
if (this.isEnabled)
{
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
this.LoadIndex();
}
this.indexControlFailed = (this.indexControlFailed || indexControl == null);
}
private void FakeHelpControl()
private void ShowInfoMessage(string infoText)
{
if (indexControl != null) indexControl.Dispose();
indexControl = null;
Controls.Clear();
Label nohelpLabel = new Label();
nohelpLabel.Dock = DockStyle.Fill;
nohelpLabel.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.HelpSystemNotAvailable}");
nohelpLabel.TextAlign = ContentAlignment.MiddleCenter;
Controls.Add(nohelpLabel);
filterCombobox.Items.Clear();
searchTerm.Items.Clear();
searchTerm.Text = string.Empty;
infoLabel.Text = infoText;
infoLabel.Visible = true;
}
public void RedrawContent()
@ -223,8 +251,7 @@ namespace HtmlHelp2 @@ -223,8 +251,7 @@ namespace HtmlHelp2
private void LoadIndex()
{
this.SetIndex(HtmlHelp2Environment.CurrentFilterName);
if (this.isEnabled)
if (this.SetIndex(HtmlHelp2Environment.CurrentFilterName))
{
searchTerm.Text = string.Empty;
searchTerm.Items.Clear();
@ -234,24 +261,18 @@ namespace HtmlHelp2 @@ -234,24 +261,18 @@ namespace HtmlHelp2
}
}
private void SetIndex(string filterName)
private bool SetIndex(string filterName)
{
if (!this.isEnabled) return;
try
{
indexControl.IndexData =
HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(filterName));
return true;
}
catch
{
this.isEnabled = false;
indexControl.Enabled = false;
indexControl.BackColor = SystemColors.ButtonFace;
filterCombobox.Enabled = false;
searchTerm.Enabled = false;
label1.Enabled = false;
label2.Enabled = false;
LoggingService.Error("Help 2.0: cannot connect to IHxIndex interface (Index)");
return false;
}
}
@ -325,13 +346,8 @@ namespace HtmlHelp2 @@ -325,13 +346,8 @@ namespace HtmlHelp2
private void NamespaceReloaded(object sender, EventArgs e)
{
this.LoadIndex();
this.UpdateControls();
}
#endregion
public bool IsEnabled
{
get { return this.isEnabled; }
}
}
}

1
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs

@ -59,7 +59,6 @@ namespace HtmlHelp2 @@ -59,7 +59,6 @@ namespace HtmlHelp2
listView.Dock = DockStyle.Fill;
listView.MultiSelect = false;
listView.HideSelection = false;
listView.Enabled = HtmlHelp2Environment.IsReady;
listView.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
ListViewResize(this,null);

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

@ -79,6 +79,27 @@ namespace HtmlHelp2 @@ -79,6 +79,27 @@ namespace HtmlHelp2
public HtmlHelp2SearchPad()
{
this.InitializeComponents();
this.UpdateControls();
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);
ProjectService.SolutionLoaded += this.SolutionLoaded;
ProjectService.SolutionClosed += this.SolutionUnloaded;
}
private void UpdateControls()
{
titlesOnly.Enabled = HtmlHelp2Environment.SessionIsInitialized;
enableStemming.Enabled = HtmlHelp2Environment.SessionIsInitialized;
hiliteTopics.Enabled = HtmlHelp2Environment.SessionIsInitialized;
useCurrentLang.Enabled = HtmlHelp2Environment.SessionIsInitialized;
filterCombobox.Enabled = HtmlHelp2Environment.SessionIsInitialized;
searchTerm.Enabled = HtmlHelp2Environment.SessionIsInitialized;
searchTerm.Text = string.Empty;
searchTerm.Items.Clear();
filterCombobox.Items.Clear();
}
private void InitializeComponents()
@ -102,13 +123,11 @@ namespace HtmlHelp2 @@ -102,13 +123,11 @@ namespace HtmlHelp2
titlesOnly.Width = pw;
titlesOnly.Top = searchButton.Top + searchButton.Height + 10;
titlesOnly.TextAlign = ContentAlignment.MiddleLeft;
titlesOnly.Enabled = HtmlHelp2Environment.IsReady;
titlesOnly.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
enableStemming.Width = pw;
enableStemming.Top = titlesOnly.Top + titlesOnly.Height - 4;
enableStemming.TextAlign = ContentAlignment.MiddleLeft;
enableStemming.Enabled = HtmlHelp2Environment.IsReady;
enableStemming.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
reuseMatches.Width = pw;
@ -120,14 +139,12 @@ namespace HtmlHelp2 @@ -120,14 +139,12 @@ namespace HtmlHelp2
hiliteTopics.Width = pw;
hiliteTopics.Top = reuseMatches.Top + reuseMatches.Height - 4;
hiliteTopics.TextAlign = ContentAlignment.MiddleLeft;
hiliteTopics.Enabled = HtmlHelp2Environment.IsReady;
hiliteTopics.Checked = true;
hiliteTopics.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
useCurrentLang.Width = pw;
useCurrentLang.Top = hiliteTopics.Top + hiliteTopics.Height;
useCurrentLang.TextAlign = ContentAlignment.MiddleLeft;
useCurrentLang.Enabled = HtmlHelp2Environment.IsReady;
useCurrentLang.Visible = ProjectService.CurrentProject != null;
useCurrentLang.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
@ -142,22 +159,18 @@ namespace HtmlHelp2 @@ -142,22 +159,18 @@ namespace HtmlHelp2
filterCombobox.Dock = DockStyle.Top;
filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
filterCombobox.Sorted = true;
filterCombobox.Enabled = HtmlHelp2Environment.IsReady;
filterCombobox.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
if (HtmlHelp2Environment.IsReady)
if (HtmlHelp2Environment.SessionIsInitialized)
{
HtmlHelp2Environment.BuildFilterList(filterCombobox);
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);
}
// Filter label
mainPanel.Controls.Add(label1);
label1.Dock = DockStyle.Top;
label1.TextAlign = ContentAlignment.MiddleLeft;
label1.Enabled = HtmlHelp2Environment.IsReady;
label1.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
// SearchTerm Combobox
@ -169,19 +182,15 @@ namespace HtmlHelp2 @@ -169,19 +182,15 @@ namespace HtmlHelp2
searchTerm.Dock = DockStyle.Top;
searchTerm.TextChanged += new EventHandler(SearchTextChanged);
searchTerm.KeyPress += new KeyPressEventHandler(KeyPressed);
searchTerm.Enabled = HtmlHelp2Environment.IsReady;
searchTerm.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
mainPanel.Controls.Add(label2);
label2.Dock = DockStyle.Top;
label2.TextAlign = ContentAlignment.MiddleLeft;
label2.Enabled = HtmlHelp2Environment.IsReady;
label2.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.RedrawContent();
ProjectService.SolutionLoaded += this.SolutionLoaded;
ProjectService.SolutionClosed += this.SolutionUnloaded;
}
private void FilterChanged(object sender, EventArgs e)
@ -210,12 +219,15 @@ namespace HtmlHelp2 @@ -210,12 +219,15 @@ namespace HtmlHelp2
private void NamespaceReloaded(object sender, EventArgs e)
{
searchTerm.Text = "";
searchTerm.Items.Clear();
this.UpdateControls();
if (HtmlHelp2Environment.SessionIsInitialized)
{
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
}
}
#endregion
private void SearchButtonClick(object sender, EventArgs e)
@ -260,7 +272,7 @@ namespace HtmlHelp2 @@ -260,7 +272,7 @@ namespace HtmlHelp2
private void PerformFTS(string searchWord, bool useDynamicHelp)
{
if (!HtmlHelp2Environment.IsReady || string.IsNullOrEmpty(searchWord) || searchIsBusy)
if (!HtmlHelp2Environment.SessionIsInitialized || string.IsNullOrEmpty(searchWord) || searchIsBusy)
{
return;
}
@ -344,7 +356,7 @@ namespace HtmlHelp2 @@ -344,7 +356,7 @@ namespace HtmlHelp2
public bool PerformF1FTS(string keyword, bool useDynamicHelp)
{
if (!HtmlHelp2Environment.IsReady || string.IsNullOrEmpty(keyword) || searchIsBusy)
if (!HtmlHelp2Environment.SessionIsInitialized || string.IsNullOrEmpty(keyword) || searchIsBusy)
{
return false;
}

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

@ -63,7 +63,6 @@ namespace HtmlHelp2 @@ -63,7 +63,6 @@ namespace HtmlHelp2
listView.FullRowSelect = true;
listView.AutoArrange = true;
listView.Enabled = HtmlHelp2Environment.IsReady;
listView.Alignment = ListViewAlignment.Left;
listView.View = View.Details;
listView.Dock = DockStyle.Fill;

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

@ -97,10 +97,11 @@ namespace HtmlHelp2 @@ -97,10 +97,11 @@ namespace HtmlHelp2
AxHxTocCtrl tocControl = null;
ComboBox filterCombobox = new ComboBox();
Label label1 = new Label();
Label infoLabel = new Label();
ContextMenuStrip printContextMenu = new ContextMenuStrip();
ToolStripMenuItem printTopic = new ToolStripMenuItem();
ToolStripMenuItem printTopicAndSubTopics = new ToolStripMenuItem();
bool isEnabled = false;
bool tocControlFailed = false;
protected override void Dispose(bool disposing)
{
@ -113,9 +114,45 @@ namespace HtmlHelp2 @@ -113,9 +114,45 @@ namespace HtmlHelp2
public MsHelp2TocControl()
{
this.isEnabled = (HtmlHelp2Environment.IsReady && Help2ControlsValidation.IsTocControlRegistered);
this.InitializeComponents();
this.UpdateControl();
if (this.isEnabled)
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
}
private void UpdateControl()
{
filterCombobox.Enabled =
(HtmlHelp2Environment.SessionIsInitialized && !this.tocControlFailed);
infoLabel.Visible = false;
if (this.tocControlFailed)
{
this.ShowInfoMessage
(StringParser.Parse("${res:AddIns.HtmlHelp2.HelpSystemNotAvailable}"));
}
else if (!HtmlHelp2Environment.SessionIsInitialized)
{
if (tocControl != null) tocControl.Visible = false;
this.ShowInfoMessage
("${res:AddIns.HtmlHelp2.HelpCollectionMayBeEmpty}");
}
else
{
tocControl.Visible = true;
this.LoadToc();
}
}
private void InitializeComponents()
{
infoLabel.Dock = DockStyle.Fill;
infoLabel.Visible = false;
infoLabel.TextAlign = ContentAlignment.MiddleCenter;
Controls.Add(infoLabel);
if (Help2ControlsValidation.IsTocControlRegistered)
{
try
{
@ -130,6 +167,7 @@ namespace HtmlHelp2 @@ -130,6 +167,7 @@ namespace HtmlHelp2
Controls.Add(tocControl);
tocControl.CreateControl();
tocControl.Visible = false;
tocControl.BorderStyle = HxBorderStyle.HxBorderStyle_FixedSingle;
tocControl.FontSource = HxFontSourceConstant.HxFontExternal;
tocControl.TreeStyle =
@ -145,16 +183,16 @@ namespace HtmlHelp2 @@ -145,16 +183,16 @@ namespace HtmlHelp2
printTopicAndSubTopics.Click += new EventHandler(this.PrintTopicAndSubTopics);
printContextMenu.Items.Add(printTopicAndSubTopics);
}
catch (System.Runtime.InteropServices.COMException cEx)
{
LoggingService.Error("Help 2.0: TOC control failed: " + cEx.ToString());
this.tocControlFailed = true;
}
catch(Exception ex)
{
LoggingService.Error("Help 2.0: TOC control failed; " + ex.ToString());
this.isEnabled = false;
this.FakeHelpControl();
}
this.tocControlFailed = true;
}
else
{
this.FakeHelpControl();
}
Panel panel1 = new Panel();
@ -166,36 +204,24 @@ namespace HtmlHelp2 @@ -166,36 +204,24 @@ namespace HtmlHelp2
filterCombobox.Dock = DockStyle.Top;
filterCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
filterCombobox.Sorted = true;
filterCombobox.Enabled = this.isEnabled;
filterCombobox.Enabled = false;
filterCombobox.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
Controls.Add(label1);
label1.Dock = DockStyle.Top;
label1.TextAlign = ContentAlignment.MiddleLeft;
label1.Enabled = this.isEnabled;
label1.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.RedrawContent();
if (this.isEnabled)
{
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
this.LoadToc();
}
this.tocControlFailed = (this.tocControlFailed || tocControl == null);
}
private void FakeHelpControl()
private void ShowInfoMessage(string infoText)
{
if (tocControl != null) tocControl.Dispose();
tocControl = null;
Controls.Clear();
Label nohelpLabel = new Label();
nohelpLabel.Dock = DockStyle.Fill;
nohelpLabel.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.HelpSystemNotAvailable}");
nohelpLabel.TextAlign = ContentAlignment.MiddleCenter;
Controls.Add(nohelpLabel);
filterCombobox.Items.Clear();
infoLabel.Text = infoText;
infoLabel.Visible = true;
}
public void RedrawContent()
@ -244,7 +270,6 @@ namespace HtmlHelp2 @@ -244,7 +270,6 @@ namespace HtmlHelp2
tocControl.Hierarchy.PrintNode(0, tocControl.Selection, PrintOptions.HxHierarchy_PrintNode_Option_Children);
}
}
#endregion
private void FilterChanged(object sender, EventArgs e)
@ -260,8 +285,7 @@ namespace HtmlHelp2 @@ -260,8 +285,7 @@ namespace HtmlHelp2
private void LoadToc()
{
this.SetToc(HtmlHelp2Environment.CurrentFilterName);
if (this.isEnabled)
if (this.SetToc(HtmlHelp2Environment.CurrentFilterName))
{
filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox);
@ -269,22 +293,18 @@ namespace HtmlHelp2 @@ -269,22 +293,18 @@ namespace HtmlHelp2
}
}
private void SetToc(string filterName)
private bool SetToc(string filterName)
{
if (!this.isEnabled) return;
try
{
tocControl.Hierarchy =
HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(filterName));
return true;
}
catch
{
this.isEnabled = false;
tocControl.Enabled = false;
tocControl.BackColor = SystemColors.ButtonFace;
filterCombobox.Enabled = false;
label1.Enabled = false;
LoggingService.Error("Help 2.0: cannot connect to IHxHierarchy interface (Contents)");
LoggingService.Error("Help 2.0: Cannot connect to the IHxHierarchy interface.");
return false;
}
}
@ -320,7 +340,7 @@ namespace HtmlHelp2 @@ -320,7 +340,7 @@ namespace HtmlHelp2
private void NamespaceReloaded(object sender, EventArgs e)
{
this.LoadToc();
this.UpdateControl();
tocControl.TreeStyle =
(HtmlHelp2Environment.Config.TocPictures)?TSC.HxTreeStyle_TreelinesPlusMinusPictureText:TSC.HxTreeStyle_TreelinesPlusMinusText;
@ -330,7 +350,6 @@ namespace HtmlHelp2 @@ -330,7 +350,6 @@ namespace HtmlHelp2
#region Published Help 2.0 Commands
public void SynchronizeToc(string topicUrl)
{
if (!this.isEnabled) return;
try
{
tocControl.Synchronize(topicUrl);
@ -343,15 +362,23 @@ namespace HtmlHelp2 @@ -343,15 +362,23 @@ namespace HtmlHelp2
public void GetNextFromNode()
{
if (!this.isEnabled) return;
try
{
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
string topicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(topicUrl, true);
}
catch (System.Runtime.InteropServices.COMException)
{
}
catch
{
}
}
public void GetNextFromUrl(string url)
{
if (!this.isEnabled || url == null || url.Length == 0) return;
if (url == null || url.Length == 0) return;
try
{
int currentNode = tocControl.Hierarchy.GetNextFromUrl(url);
@ -369,15 +396,23 @@ namespace HtmlHelp2 @@ -369,15 +396,23 @@ namespace HtmlHelp2
public void GetPrevFromNode()
{
if (!this.isEnabled) return;
try
{
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
string topicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(topicUrl, true);
}
catch (System.Runtime.InteropServices.COMException)
{
}
catch
{
}
}
public void GetPrevFromUrl(string url)
{
if (!this.isEnabled || url == null || url.Length == 0) return;
if (url == null || url.Length == 0) return;
try
{
int currentNode = tocControl.Hierarchy.GetPrevFromUrl(url);
@ -424,11 +459,6 @@ namespace HtmlHelp2 @@ -424,11 +459,6 @@ namespace HtmlHelp2
}
}
}
public bool IsEnabled
{
get { return this.isEnabled; }
}
#endregion
}
}

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

@ -15,14 +15,15 @@ namespace HtmlHelp2.RegistryWalker @@ -15,14 +15,15 @@ namespace HtmlHelp2.RegistryWalker
public sealed class Help2RegistryWalker
{
public static void BuildNamespacesList(ComboBox help2Collections, string selectedHelp2Collection)
public static bool BuildNamespacesList(ComboBox help2Collections, string selectedHelp2Collection)
{
if (help2Collections == null)
{
return;
return false;
}
help2Collections.Items.Clear();
help2Collections.BeginUpdate();
bool result = true;
try
{
@ -48,14 +49,18 @@ namespace HtmlHelp2.RegistryWalker @@ -48,14 +49,18 @@ namespace HtmlHelp2.RegistryWalker
else
help2Collections.SelectedIndex = 0;
}
catch(Exception ex)
catch
{
LoggingService.Error("Help 2.0: Cannot build namespaces list;", ex);
result = false;
}
finally
{
help2Collections.EndUpdate();
}
return result;
}
public static string GetNamespaceName(string description)
{
try

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

@ -24,11 +24,12 @@ namespace HtmlHelp2.OptionsPanel @@ -24,11 +24,12 @@ namespace HtmlHelp2.OptionsPanel
{
ComboBox help2Collections = null;
CheckBox tocPictures = null;
string selectedHelp2Collection = HtmlHelp2Environment.DefaultNamespaceName;
string selectedHelp2Collection = string.Empty;
public override void LoadPanelContents()
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("HtmlHelp2.Resources.HtmlHelp2Options.xfrm"));
SetupFromXmlStream
(this.GetType().Assembly.GetManifestResourceStream("HtmlHelp2.Resources.HtmlHelp2Options.xfrm"));
this.InitializeComponents();
}
@ -41,22 +42,18 @@ namespace HtmlHelp2.OptionsPanel @@ -41,22 +42,18 @@ namespace HtmlHelp2.OptionsPanel
private void InitializeComponents()
{
try
{
selectedHelp2Collection = HtmlHelp2Environment.CurrentSelectedNamespace;
help2Collections = (ComboBox)ControlDictionary["help2Collections"];
help2Collections.Enabled = HtmlHelp2Environment.IsReady;
help2Collections.SelectedIndexChanged += new EventHandler(this.NamespaceNameChanged);
selectedHelp2Collection = HtmlHelp2Environment.CurrentSelectedNamespace;
tocPictures = (CheckBox)ControlDictionary["tocPictures"];
tocPictures.Enabled = HtmlHelp2Environment.IsReady;
tocPictures.Checked = HtmlHelp2Environment.Config.TocPictures;
Help2RegistryWalker.BuildNamespacesList(help2Collections, selectedHelp2Collection);
}
catch(Exception ex)
if (!Help2RegistryWalker.BuildNamespacesList(help2Collections, selectedHelp2Collection))
{
LoggingService.Error("Help 2.0: Cannot initialize options panel; " + ex.Message);
help2Collections.Enabled = false;
tocPictures.Enabled = false;
}
}

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

@ -45,7 +45,7 @@ namespace HtmlHelp2.Environment @@ -45,7 +45,7 @@ namespace HtmlHelp2.Environment
}
#region Properties
public static bool IsReady
public static bool SessionIsInitialized
{
get { return session != null; }
}
@ -195,34 +195,6 @@ namespace HtmlHelp2.Environment @@ -195,34 +195,6 @@ namespace HtmlHelp2.Environment
{
return defaultValue;
}
// string resultString = "";
//
// try
// {
// IHxIndex namedUrlIndex = (IHxIndex)session.GetNavigationInterface("!DefaultNamedUrlIndex",
// "",
// ref IndexGuid);
// IHxTopicList topics = null;
//
// topics = namedUrlIndex.GetTopicsFromString(pageName, 0);
//
// if(topics.Count == 0 && (alternatePageName != null && alternatePageName != ""))
// {
// topics = namedUrlIndex.GetTopicsFromString(alternatePageName, 0);
// }
//
// if(topics.Count > 0)
// resultString = topics.ItemAt(1).URL;
//
// if (resultString == null || resultString.Length == 0)
// resultString = defaultValue;
//
// return resultString;
// }
// catch
// {
// return defaultValue;
// }
}
public static IHxHierarchy GetTocHierarchy(string filterQuery)
@ -303,23 +275,6 @@ namespace HtmlHelp2.Environment @@ -303,23 +275,6 @@ namespace HtmlHelp2.Environment
{
return string.Empty;
}
// try
// {
// IHxRegFilter filter = namespaceFilters.FindFilter(filterName);
// currentSelectedFilterQuery = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterQuery);
// currentSelectedFilterName = filterName;
//
// OnFilterQueryChanged(EventArgs.Empty);
//
// ReloadFTSSystem();
// ReloadDynamicHelpSystem();
// ReloadDefaultPages();
// return currentSelectedFilterQuery;
// }
// catch
// {
// return "";
// }
}
public static IHxTopicList GetMatchingTopicsForDynamicHelp(string searchTerm)

Loading…
Cancel
Save