public NopsaImage(NOPSAImageHolder imgholder, CommunicationManager cm) { InitializeComponent(); imageholder = imgholder; line.X1 = 0; line.X2 = Width; line.Y1 = Height - 1; line.Y2 = Height - 1; this.cm = cm; }
public static void download_image_to_doc(NOPSAImageHolder imageholder) { //Debug.WriteLine(Util.GetUserDataPath()); //ApplicationInteraction.PowerPointApplication.ActiveWindow.Selection.SlideRange.Shapes.AddPicture(Path.Combine(Util.GetUserDataPath() , "citywall.jpg") , //new Util.Downloader(imageholder.img_url); //ApplicationInteraction.imagesadded.Add(imageholder); //downloading image //office hangs when loading image, even when run in seperate thread or backgroundworker. when you insert image from url, office hangs (without using addin), so I suppose its problem at their end try { Shape addedpic = ApplicationInteraction.PowerPointApplication.ActiveWindow.Selection.SlideRange.Shapes.AddPicture( imageholder.img_url, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 0, 0); shape_uuids.Add(addedpic.GetHashCode()); imagesadded.Add(imageholder); ApplicationInteraction.add_credits_slide(); } catch (Exception ex) { //System.Windows.Forms.MessageBox.Show("Dear paba, here comes a error :) "); //System.Windows.Forms.MessageBox.Show("-" + ex.Message); //System.Windows.Forms.MessageBox.Show("-" + ex.StackTrace); TextWriter tw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ribbon.txt"); tw.WriteLine("Message:"); tw.WriteLine(ex.Message); tw.WriteLine("StackTrace:"); tw.WriteLine(ex.StackTrace); tw.WriteLine("Source:"); tw.WriteLine(ex.Source); tw.WriteLine("helplink"); tw.WriteLine(ex.HelpLink); tw.Close(); } }
private void parse() { if (this.xml.Contains("notice message")) { return; //REMOVE NOTICE MESSAGE FROM API } else if (this.xml.Contains("<code>") && !this.xml.Contains("900")) { //Debug.WriteLine("XML code error: " + this.xml.ToString()); return; } List <String> suggestions = new List <String>(); String source = ""; List <NOPSAImageHolder> images = new List <NOPSAImageHolder>(); List <NOPSAImageTagHolder> img_tags = new List <NOPSAImageTagHolder>(); //dont forget to empty it after a 'round' //bool issearch = false; bool img_start = false; bool tag_start = false; String img_id = ""; String img_rights = ""; String img_holder = ""; String img_url = ""; String img_creator = ""; String img_height = ""; String img_width = ""; String img_prirority = ""; String tag_id = ""; String tag_relevence = ""; String tag_string = ""; //Debug.WriteLine(this.xml); using (XmlReader reader = XmlReader.Create(new StringReader(this.xml))) { while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: // The node is an element. //Debug.Write("<" + reader.Name); //Debug.WriteLine(">"); if (reader.Name == "source") // true for suggest { String recieved_name = reader["name"]; if (recieved_name != null && !recieved_name.Equals("")) { //Debug.WriteLine("suggest recieved name isnt null '" + recieved_name + "'"); source = recieved_name; } //Debug.WriteLine("its suggestion " + reader["name"]); // only true for suggesiton } else if (reader.Name == "search") // true for search { String recieved_name = reader["source"]; if (recieved_name != null && !recieved_name.Equals("")) { //Debug.WriteLine("search recieved name isnt null " + recieved_name); source = recieved_name; } } else if (reader.Name == "suggestion") // its suggestion element { String temp = reader.ReadString().Trim(); //suggestion text //Debug.WriteLine("temp: " + temp); suggestions.Add(temp); } else if (reader.Name == "image") // its search->image element { //Debug.WriteLine("starting image"); img_start = true; //so that other tags inside <image> can know that its their turn (not of someone with same name but outside <image>) } else if (reader.Name == "id") // currently multile tags start with id { if (img_start && !tag_start) // it must be related to <image> { img_id = reader.ReadString().Trim(); } if (img_start && tag_start) // it must be related to <image>..<tag>HERE</tag></image> { tag_id = reader.ReadString().Trim(); } } else if (reader.Name == "rights") { if (img_start) { img_rights = reader.ReadString().Trim(); } } else if (reader.Name == "image_holder") { if (img_start) { img_holder = reader.ReadString().Trim(); } } else if (reader.Name == "url") { if (img_start) { img_url = reader.ReadString().Trim(); } } else if (reader.Name == "creator") { if (img_start) { img_creator = reader.ReadString().Trim(); } } else if (reader.Name == "height") { if (img_start) { img_height = reader.ReadString().Trim(); } } else if (reader.Name == "width") { if (img_start) { img_width = reader.ReadString().Trim(); } } else if (reader.Name == "prirority") { if (img_start) { img_prirority = reader.ReadString().Trim(); } } else if (reader.Name == "tag") { if (img_start) { tag_start = true; // telling others that tag has started //Debug.WriteLine("its tag"); } } else if (reader.Name == "relevancy") { if (img_start && tag_start) { tag_relevence = reader.ReadString().Trim(); } } else if (reader.Name == "string") { if (img_start && tag_start) { tag_string = reader.ReadString().Trim(); } } break; case XmlNodeType.Text: //Display the text in each element. //Debug.WriteLine(reader.Value); break; case XmlNodeType.EndElement: //Display the end of the element. //Debug.Write("</" + reader.Name); //Debug.WriteLine(">"); if (reader.Name == "image") // its search->image element { //Debug.WriteLine("ending image"); img_start = false; //now put image in container /* * Debug.WriteLine("img_id: " + img_id); * Debug.WriteLine("img_rights: " + img_rights); * Debug.WriteLine("img_holder: " + img_holder); * Debug.WriteLine("img_url: " + img_url); * Debug.WriteLine("img_creator: " + img_creator); * Debug.WriteLine("img_height: " + img_height); * Debug.WriteLine("img_width: " + img_width); * Debug.WriteLine("img_prirority: " + img_prirority); */ NOPSAImageHolder temp_img = new NOPSAImageHolder(); temp_img.img_source = source; temp_img.img_id = img_id; temp_img.img_rights = img_rights; temp_img.img_holder = img_holder; temp_img.img_url = img_url; temp_img.img_creator = img_creator; temp_img.img_height = img_height; temp_img.img_width = img_width; temp_img.img_prirority = img_prirority; temp_img.tags = img_tags; img_tags = new List <NOPSAImageTagHolder>(); images.Add(temp_img); Debug.WriteLine("this is cm, source: " + source + " , url: " + img_url); } else if (reader.Name == "tag") { if (img_start) { tag_start = false; //Debug.WriteLine("its tag closing"); NOPSAImageTagHolder temp_tag_holder = new NOPSAImageTagHolder(); temp_tag_holder.tag_id = tag_id; temp_tag_holder.tag_relevence = tag_relevence; temp_tag_holder.tag_string = tag_string; //Debug.WriteLine("id: "+tag_id); //Debug.WriteLine("relevence: "+tag_relevence); //Debug.WriteLine("string: " + tag_string); img_tags.Add(temp_tag_holder); } } break; } } } //Debug.WriteLine("some data processed"); if (suggestions.Count != 0) // so it means the returned xml was from a suggestions query { Suggest_Data.sources.Add(source); Suggest_Data.suggestions.Add(suggestions); suc.ActiveControl.Invoke((MethodInvoker) delegate { // runs on UI thread suc.update_suggestions(); }); } else if (images.Count != 0) { //Debug.WriteLine("images arnt zero"); Search_Data.sources.Add(source); Search_Data.images.Add(images); //WE MAY RUN SOME SHUFFLING ALGO HERE if (suc.InvokeRequired) { suc.ActiveControl.Invoke(new MethodInvoker(delegate { suc.update_images(); })); } else { suc.update_images(); } /* * suc.ActiveControl.Invoke((MethodInvoker)delegate * { * // runs on UI thread * suc.update_images(); * }); */ } source = ""; //not required but helps in debugging }