public void InsertSmartContentFromTabbedDialog(string contentSourceID, int selectedTab) { // Get a reference to the video plugin ITabbedInsertDialogContentSource contentSource = (ITabbedInsertDialogContentSource)ContentSourceManager.GetContentSourceInfoById(contentSourceID).Instance; if (contentSource == null) return; IExtensionData extensionData = (this as IContentSourceSite).CreateExtensionData(Guid.NewGuid().ToString()); ISmartContent sContent = new InternalSmartContent(extensionData, this, contentSourceID); using (EditorUndoUnit undo = new EditorUndoUnit(_currentEditor)) { if (contentSource.CreateContentFromTabbedDialog(_mainFrameWindow, sContent, selectedTab) == DialogResult.OK) { string content = ((SmartContentSource)contentSource).GenerateEditorHtml(sContent, this); if (content != null) { ((IContentSourceSite)this).InsertContent(contentSourceID, content, extensionData); undo.Commit(); } Focus(); } } }
public static void PerformInsertion(IContentSourceSite sourceSite, ContentSourceInfo contentSource) { // record use of content-source (used to list source in MRU order on the sidebar) RecordContentSourceUsage(contentSource.Id); try { if (contentSource.Instance is SmartContentSource) { SmartContentSource scSource = (SmartContentSource)contentSource.Instance; IExtensionData extensionData = sourceSite.CreateExtensionData(Guid.NewGuid().ToString()); // SmartContentSource implementations *must* be stateless (see WinLive 126969), so we wrap up the // internal smart content context and pass it in as a parameter to the CreateContent call. ISmartContent sContent; if (scSource is IInternalSmartContentSource) { sContent = new InternalSmartContent(extensionData, sourceSite as IInternalSmartContentContextSource, contentSource.Id); } else { sContent = new SmartContent(extensionData); } if (scSource.CreateContent(sourceSite.DialogOwner, sContent) == DialogResult.OK) { string content = scSource.GenerateEditorHtml(sContent, sourceSite); if (content != null) { sourceSite.InsertContent(contentSource.Id, content, extensionData); sourceSite.Focus(); if (ApplicationPerformance.ContainsEvent(MediaInsertForm.EventName)) ApplicationPerformance.EndEvent(MediaInsertForm.EventName); } } } else if (contentSource.Instance is ContentSource) { ContentSource sSource = (ContentSource)contentSource.Instance; string newContent = String.Empty; // default try { if (sourceSite.SelectedHtml != null) newContent = sourceSite.SelectedHtml; } catch { } // safely try to provide selected html if (sSource.CreateContent(sourceSite.DialogOwner, ref newContent) == DialogResult.OK) { sourceSite.InsertContent(newContent, contentSource.Id == WebImageContentSource.ID); sourceSite.Focus(); } } } catch (Exception ex) { DisplayContentRetreivalError(sourceSite.DialogOwner, ex, contentSource); } }