From 36b42e64d4a4272aea7a3160200077b59b463499 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 25 Oct 2017 10:28:51 -0500 Subject: [PATCH] Ability to open a URL that is attached to a puzzle --- EduNetworkBuilder/NB.cs | 12 +++++ EduNetworkBuilder/NetworkBuilder.cs | 44 +++++++++++++++---- .../Resources/languages/edustrings.resx | 4 ++ 3 files changed, 52 insertions(+), 8 deletions(-) diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index 53c38bc..3428d5b 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -1006,6 +1006,18 @@ namespace EduNetworkBuilder return randomizedList; } + public static bool OpenURLInExternalBrowser(string URL) + { + Uri uriResult; + bool result = Uri.TryCreate(URL, UriKind.Absolute, out uriResult) + && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps); + if(result) + { + System.Diagnostics.Process.Start(URL); + } + return false; + } + public static List GetAllNodes(this TreeView _self) { List result = new List(); diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index c106a93..100208e 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -238,6 +238,23 @@ namespace EduNetworkBuilder //Make a bunch of new buttons. int count=0; int offset = btnHelp.Height + 3; + if (myNetwork.NetURL.GetText() != "") + { + tButton = new Button(); + tButton.Location = new Point(btnHelp.Location.X, rbHelp1.Location.Y + rbHelp1.Height + 5 + (offset * count)); + //tButton.Text = (count + 1).ToString(); + tButton.BackgroundImage = Properties.Resources.VidImage; + tButton.BackgroundImageLayout = ImageLayout.Stretch; + tButton.Width = btnHelp.Width; + tButton.Height = btnHelp.Height; + tButton.Click += btnRead_Click; + tButton.Name = myNetwork.PuzzleName + "_URL"; + tButton.Tag = myNetwork.NetURL.GetText(); + HelpPanel.Controls.Add(tButton); + myTooltip.SetToolTip(tButton, NB.Translate("_OpenURL") + " " + myNetwork.PuzzleName); + HelpTopicButtons.Add(tButton); + count++; + } foreach (HelpTopics HT in myNetwork.SuggestedReadings) { tButton = new Button(); @@ -270,18 +287,29 @@ namespace EduNetworkBuilder private void btnRead_Click(object sender, EventArgs e) { Button me = (Button)sender; - HelpTopics HT = NB.TryParseEnum(me.Name, HelpTopics.None); - if(HT != HelpTopics.None) + if (me.Tag == null) { - myNetwork.NoteActionDone(NetTestType.ReadContextHelp, me.Name, NB.Translate("_Read")); - NB.ReadContextHelp(HT); + HelpTopics HT = NB.TryParseEnum(me.Name, HelpTopics.None); + if (HT != HelpTopics.None) + { + myNetwork.NoteActionDone(NetTestType.ReadContextHelp, me.Name, NB.Translate("_Read")); + NB.ReadContextHelp(HT); + } + UpdateHelpTopicButtons(); + UpdateForm(); + UpdateMenu(); + myNetwork.TestForCompletion(true); + } + else + { + //It should be a video URL + string URL = (string)me.Tag; + NB.OpenURLInExternalBrowser(URL); } - UpdateHelpTopicButtons(); - UpdateForm(); - UpdateMenu(); - myNetwork.TestForCompletion(true); } + + private void myTooltip_Popup(Object sender, PopupEventArgs e) { //In case we have a puzzle we are trying to solve diff --git a/EduNetworkBuilder/Resources/languages/edustrings.resx b/EduNetworkBuilder/Resources/languages/edustrings.resx index 9589129..6ca215e 100644 --- a/EduNetworkBuilder/Resources/languages/edustrings.resx +++ b/EduNetworkBuilder/Resources/languages/edustrings.resx @@ -1985,4 +1985,8 @@ Message / Title TW_Message = Message / Title + + Open a URL for the puzzle: + _OpenURL = Open a URL for the puzzle: + \ No newline at end of file