public static void CreateUI(RibbonPanel ribbonPanel) { if (!PlugIn.PlugInExists(GrasshopperGuid, out bool loaded, out bool loadProtected)) { return; } // Create a push button to trigger a command add it to the ribbon panel. var thisAssembly = Assembly.GetExecutingAssembly(); var buttonData = new PushButtonData ( "cmdRhinoInside.Grasshopper", "Grasshopper", thisAssembly.Location, MethodBase.GetCurrentMethod().DeclaringType.FullName ); if (ribbonPanel.AddItem(buttonData) is PushButton pushButton) { pushButton.ToolTip = "Toggle Grasshopper window visibility"; pushButton.LargeImage = ImageBuilder.LoadBitmapImage("RhinoInside.Resources.Grasshopper.png"); pushButton.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://www.grasshopper3d.com/")); pushButton.Enabled = !loadProtected; } }
public GrasshopperCommand() { if (!PlugIn.LoadPlugIn(PluginId, true, true)) { throw new Exception("Failed to load Grasshopper"); } }
public DrectSoft.FrameWork.IPlugIn Run(DrectSoft.FrameWork.WinForm.Plugin.IEmrHost host) { PlugIn plg = new PlugIn(this.GetType().ToString(), this); m_host = host; return(plg); }
/// <summary> /// 实现接口部分 /// </summary> /// <param name="host"></param> /// <returns></returns> public IPlugIn Run(IEmrHost host) { IPlugIn plg = new PlugIn(this.GetType().ToString(), this); m_app = host; return(plg); }
//xtraTabPageMedicine public IPlugIn Run(FrameWork.WinForm.Plugin.IEmrHost host) { IPlugIn plg = new PlugIn(this.GetType().ToString(), this); m_app = host; return(plg); }
public IPlugIn Run(DrectSoft.FrameWork.WinForm.Plugin.IEmrHost host) { IPlugIn plg = new PlugIn(this.GetType().ToString(), this); m_app = host; sqlHelper = host.SqlHelper; return(plg); }
public DrectSoft.FrameWork.IPlugIn Run(IEmrHost host) { PlugIn plg = new PlugIn(this.GetType().ToString(), this); m_App = host; return(plg); }
public DrectSoft.FrameWork.IPlugIn Run(DrectSoft.FrameWork.WinForm.Plugin.IEmrHost host) { PlugIn plg = new PlugIn(this.GetType().ToString(), this); _app = host; m_DataAccessEmrly = host.SqlHelper; return(plg); }
/// <summary> /// Returns list of directory names where additional assemblies (plug-ins, DLLs, Grasshopper components) /// may be located /// </summary> /// <returns></returns> public static string[] GetAssemblySearchPaths() { #if RHINO_SDK return PlugIn.GetInstalledPlugInFolders(); #else return new string[0]; #endif }
//private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ //} //private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // if (NowSearchMasterplate==null) // { // return; // }//add by dxj 2011/6/24 // SetWaitDialogCaption("正在查询数据"); // QueryInpatient(); // HideWaitDialog(); //} //private void barButtonItemDel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // if (gridView1.FocusedRowHandle < 0) return; // DataRow fourcesRow = gridView1.GetDataRow(gridView1.FocusedRowHandle); // if (fourcesRow == null) return; // fourcesRow.Delete(); //} //private void barButtonItemExportWord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // saveFileDialog1.Filter = "Text Files | *.txt"; // saveFileDialog1.DefaultExt = "txt"; // if (saveFileDialog1.ShowDialog() == DialogResult.OK) // gridControl1.ExportToText(saveFileDialog1.FileName); //} //private void barButtonItem6_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // saveFileDialog1.Filter = "html Files | *.html"; // saveFileDialog1.DefaultExt = "txt"; // if (saveFileDialog1.ShowDialog() == DialogResult.OK) // gridControl1.ExportToHtml(saveFileDialog1.FileName); //} //private void barButtonItemExportExcel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // saveFileDialog1.Filter = "Excel Files | *.xls"; // saveFileDialog1.DefaultExt = "Excel"; // if (saveFileDialog1.ShowDialog() == DialogResult.OK) // gridControl1.ExportToXls(saveFileDialog1.FileName); //} //private void barButtonItemRead_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // if (gridView1.FocusedRowHandle < 0) return; // DataRow fourcesRow = gridView1.GetDataRow(gridView1.FocusedRowHandle); // if (fourcesRow == null) return; // EprBrower brower = new EprBrower(fourcesRow["NoOfInpat"].ToString()); // brower.ShowDialog(); //} //private void barButtonNew_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) //{ // listBoxCond.Items.Clear(); // NowSearchMasterplate = new EmrQueryCondition(); // treeListCurrentEmbed.FocusedNode = null; //} #endregion public IPlugIn Run(IYidanEmrHost host) { PlugIn plg = new PlugIn(this.GetType().ToString(), this); _app = host; //QueryService = host.SqlHelper; return(plg); }
static void PrintPlug(PlugIn plug) { System.Console.WriteLine("Id\t\t = {0}", plug.PlugId); System.Console.WriteLine("Name\t\t = {0}", plug.PlugName); System.Console.WriteLine("FriendlyName\t = {0}", plug.PlugFriendlyName); System.Console.WriteLine("Description\t = {0}", plug.PlugDescription); System.Console.WriteLine("Version\t\t = {0}", plug.PlugVersion); System.Console.WriteLine("Active\t\t = {0}", plug.Active); }
public IPlugIn Run(IEmrHost host) { PlugIn plg = new PlugIn(this.GetType().ToString(), this); plg.PatientChanging += new PatientChangingHandler(plg_PatientChanging); plg.PatientChanged += new PatientChangedHandler(plg_PatientChanged); m_host = host; return(plg); }
public IPlugIn Run(IEmrHost host) { FormMainConsultation form = new FormMainConsultation(host); m_App = host; PlugIn plg = new PlugIn(this.GetType().ToString(), form); return(plg); }
/// <summary> /// Register custom render user interface with Rhino. This should only be /// done in <see cref="RenderPlugIn.RegisterRenderPanels"/>. Panels /// registered after <see cref="RenderPlugIn.RegisterRenderPanels"/> is called /// will be ignored. /// </summary> /// <param name="plugin"> /// The plug-in providing the custom user interface /// </param> /// <param name="tabType"> /// The type of object to be created and added to the render container. /// </param> /// <param name="caption"> /// The caption for the custom user interface. /// </param> /// <param name="icon"> /// </param> public void RegisterTab(PlugIn plugin, Type tabType, string caption, Icon icon) { if (!typeof(IWin32Window).IsAssignableFrom(tabType)) { throw new ArgumentException("tabType must implement IWin32Window interface", "tabType"); } var constructor = tabType.GetConstructor(Type.EmptyTypes); if (!tabType.IsPublic || constructor == null) { throw new ArgumentException("tabType must be a public class and have a parameterless constructor", "tabType"); } var attr = tabType.GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false); if (attr.Length != 1) { throw new ArgumentException("tabType must have a GuidAttribute", "tabType"); } if (g_existing_dockbar_tabs == null) { g_existing_dockbar_tabs = new List <RenderTabData>(); } // make sure the type is not already registered for (var i = 0; i < g_existing_dockbar_tabs.Count; i++) { var pd = g_existing_dockbar_tabs[i]; if (pd != null && pd.PlugInId == plugin.Id && pd.PanelType == tabType) { return; } } var panel_data = new RenderTabData() { PlugInId = plugin.Id, PanelType = tabType, Icon = icon }; g_existing_dockbar_tabs.Add(panel_data); var render_panel_type = RenderPanelTypeToRhRdkCustomUiType(panel_data.RenderPanelType); g_create_dockbar_tab_callback = OnCreateDockBarTabCallback; g_visible_dockbar_tab_callback = OnVisibleDockBarTabCallback; g_destroy_dockbar_tab_callback = OnDestroyDockBarTabCallback; UnsafeNativeMethods.CRhCmnRdkRenderPlugIn_RegisterCustomDockBarTab( render_panel_type, caption, tabType.GUID, plugin.Id, icon == null ? IntPtr.Zero : icon.Handle, g_create_dockbar_tab_callback, g_visible_dockbar_tab_callback, g_destroy_dockbar_tab_callback ); }
public Result Execute(ExternalCommandData data, ref string message, ElementSet elements) { if (!PlugIn.LoadPlugIn(GrasshopperGuid)) { return(Result.Failed); } return(Rhino.RhinoApp.RunScript("!_-Grasshopper _W _T ENTER", false) ? Result.Succeeded : Result.Failed); }
/// <summary> /// Register custom render user interface with Rhino. This should only be /// done in <see cref="RenderPlugIn.RegisterRenderPanels"/>. Panels /// registered after <see cref="RenderPlugIn.RegisterRenderPanels"/> is called /// will be ignored. /// </summary> /// <param name="plugin"> /// The plug-in providing the custom user interface /// </param> /// <param name="renderPanelType"> /// See <see cref="RenderPanelType"/> for supported user interface types. /// </param> /// <param name="panelType"> /// The type of object to be created and added to the render container. /// </param> /// <param name="caption"> /// The caption for the custom user interface. /// </param> /// <param name="alwaysShow"> /// If true the custom user interface will always be visible, if false then /// it may be hidden or shown as requested by the user. /// </param> /// <param name="initialShow"> /// Initial visibility state of the custom user interface control. /// </param> public void RegisterPanel(PlugIn plugin, RenderPanelType renderPanelType, Type panelType, string caption, bool alwaysShow, bool initialShow) { if (!typeof(IWin32Window).IsAssignableFrom(panelType)) { throw new ArgumentException("panelType must implement IWin32Window interface", "panelType"); } var constructor = panelType.GetConstructor(System.Type.EmptyTypes); if (!panelType.IsPublic || constructor == null) { throw new ArgumentException("panelType must be a public class and have a parameterless constructor", "panelType"); } var attr = panelType.GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false); if (attr.Length != 1) { throw new ArgumentException("panelType must have a GuidAttribute", "panelType"); } if (g_existing_panels == null) { g_existing_panels = new List <RenderPanelData>(); } // make sure the type is not already registered for (var i = 0; i < g_existing_panels.Count; i++) { var pd = g_existing_panels[i]; if (pd != null && pd.PlugInId == plugin.Id && pd.PanelType == panelType) { return; } } var panel_data = new RenderPanelData { PlugInId = plugin.Id, PanelType = panelType, RenderPanelType = renderPanelType }; g_existing_panels.Add(panel_data); g_create_panel_callback = OnCreatePanelCallback; g_visible_panel_callback = OnVisiblePanelCallback; g_destroy_panel_callback = OnDestroyPanelCallback; var render_panel_type = RenderPanelTypeToRhRdkCustomUiType(renderPanelType); UnsafeNativeMethods.CRhCmnRdkRenderPlugIn_RegisterCustomPlugInUi( render_panel_type, caption, panelType.GUID, plugin.Id, alwaysShow, initialShow, g_create_panel_callback, g_visible_panel_callback, g_destroy_panel_callback); }
public static void CreateUI(RibbonPanel ribbonPanel) { var items = ribbonPanel.AddStackedItems ( new ComboBoxData("Category"), NewPushButtonData <CommandGrasshopperBake, NeedsActiveDocument <Availability> >("Bake Selected") ); if (items[0] is ComboBox comboBox) { categoriesComboBox = comboBox; EventHandler <IdlingEventArgs> BuildDirectShapeCategoryList = null; Revit.ApplicationUI.Idling += BuildDirectShapeCategoryList = (sender, args) => { var doc = (sender as UIApplication).ActiveUIDocument?.Document; if (doc == null) { return; } var directShapeCategories = Enum.GetValues(typeof(DB.BuiltInCategory)).Cast <DB.BuiltInCategory>(). Where(categoryId => DB.DirectShape.IsValidCategoryId(new DB.ElementId(categoryId), doc)). Select(categoryId => DB.Category.GetCategory(doc, categoryId)). Where(x => x is object); foreach (var group in directShapeCategories.GroupBy(x => x.CategoryType).OrderBy(x => x.Key.ToString())) { foreach (var category in group.OrderBy(x => x.Name)) { var comboBoxMemberData = new ComboBoxMemberData(((DB.BuiltInCategory)category.Id.IntegerValue).ToString(), category.Name) { GroupName = group.Key.ToString() }; var item = categoriesComboBox.AddItem(comboBoxMemberData); if ((DB.BuiltInCategory)category.Id.IntegerValue == DB.BuiltInCategory.OST_GenericModel) { categoriesComboBox.Current = item; } } } Revit.ApplicationUI.Idling -= BuildDirectShapeCategoryList; }; } if (items[1] is PushButton bakeButton) { bakeButton.ToolTip = "Bakes selected objects content in the active Revit document"; bakeButton.LongDescription = "Use CTRL key to group resulting elements"; bakeButton.Image = ImageBuilder.LoadBitmapImage("RhinoInside.Resources.GH.Toolbar.Bake.png", true); bakeButton.LargeImage = ImageBuilder.LoadBitmapImage("RhinoInside.Resources.GH.Toolbar.Bake.png"); bakeButton.Visible = PlugIn.PlugInExists(PluginId, out bool _, out bool _); } }
public IPlugIn Run(IEmrHost host) { IPlugIn plg = new PlugIn(this.GetType().ToString(), this); m_App = host; m_SqlHelper = new SqlHelper(host.SqlHelper); m_SearchDataEntity = new SearchDataEntity(); return(plg); }
public IPlugIn Run(YidanSoft.FrameWork.WinForm.Plugin.IYidanEmrHost host) { PlugIn plg = new PlugIn(this.GetType().ToString(), this); plg.PatientChanged += new PatientChangedHandler(plg_PatientChanged); m_app = host; m_RecordDal = new RecordDal(m_app.SqlHelper); m_UCEmrInput.SetInnerVar(m_app, m_RecordDal); return(plg); }
static void CheckInGuests() { if (guests is null) { return; } foreach (var guestInfo in guests) { if (guestInfo.Guest is object) { continue; } bool load = true; foreach (var guestPlugIn in guestInfo.ClassType.GetCustomAttributes(typeof(GuestPlugInIdAttribute), false).Cast <GuestPlugInIdAttribute>()) { load |= PlugIn.GetPlugInInfo(guestPlugIn.PlugInId).IsLoaded; } if (!load) { continue; } guestInfo.Guest = Activator.CreateInstance(guestInfo.ClassType) as IGuest; string complainMessage = string.Empty; try { guestInfo.LoadReturnCode = guestInfo.Guest.OnCheckIn(ref complainMessage); } catch (Exception e) { guestInfo.LoadReturnCode = LoadReturnCode.ErrorShowDialog; complainMessage = e.Message; } if (guestInfo.LoadReturnCode == LoadReturnCode.ErrorShowDialog) { using ( var taskDialog = new TaskDialog(MethodBase.GetCurrentMethod().DeclaringType.FullName) { Title = guestInfo.Guest.Name, MainIcon = TaskDialogIcons.IconError, TitleAutoPrefix = false, AllowCancellation = false, MainInstruction = $"{guestInfo.Guest.Name} failed to load", MainContent = complainMessage } ) { taskDialog.Show(); } } } }
/// <summary> /// Load Form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmMain_Load(object sender, EventArgs e) { //加载到菜单 PlugIn.LoadPlugInMenuItem(plugInToolStripMenuItem); //禁用操作 DisableAllOpr(); //Set Tool bar button enable SetToolBarEnabled(); //Open ConnectionManagement Form Utility.OpenForm(new FrmConnect(), true, true); //多文档管理器的设定 var parentMenuItems = new List <ToolStripMenuItem>(); parentMenuItems.Add(CollectionToolStripMenuItem); parentMenuItems.Add(JavaScriptStripMenuItem); MultiTabManger.Init(tabView, parentMenuItems); //MultiTab固定项目的初始化 var serverStatusCtl = new CtlServerStatus(); serverStatusCtl.IsFixedItem = true; serverStatusCtl.SelectObjectTag = "[ServerStatus]"; serverStatusCtl.BindingMenu = StatusToolStripMenuItem; MultiTabManger.AddView(serverStatusCtl, "Status"); var ctlShellCommandEditor = new CtlJsEditor(); ctlShellCommandEditor.IsFixedItem = true; ctlShellCommandEditor.SelectObjectTag = "[ShellCommand]"; ctlShellCommandEditor.BindingMenu = commandShellToolStripMenuItem; MultiTabManger.AddView(ctlShellCommandEditor, "ShellCommand"); //刷新 RefreshToolStripMenuItem_Click(sender, e); serverStatusCtl.RefreshGui(); MultiTabManger.SelectTab("[ServerStatus]"); //委托设置 trvsrvlst.NodeMouseClick += trvsrvlst_NodeMouseClick; trvsrvlst.NodeMouseDoubleClick += (x, y) => ViewDataObj(); ViewDataToolStripMenuItem.Click += (x, y) => ViewDataObj(); trvsrvlst.KeyDown += trvsrvlst_KeyDown; tabView.SelectedIndexChanged += tabView_SelectedIndexChanged; //CommandHelper.RunCommandComplete += CommandLog; //长时间操作时候,实时提示进度在状态栏中 lblAction.Text = string.Empty; MongoHelper.ActionDone += (x, y) => { //1.lblAction 没有InvokeRequired //2.DoEvents必须 lblAction.Text = y.Message; Application.DoEvents(); }; }
/// <summary> /// Load Form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmMain_Load(object sender, EventArgs e) { //加载到菜单 PlugIn.LoadPlugInMenuItem(plugInToolStripMenuItem); //禁用操作 DisableAllOpr(); //Set Tool bar button enable SetToolBarEnabled(); //Open ConnectionManagement Form UIAssistant.OpenModalForm(new frmConnect(), true, true); //多文档管理器的设定 var parentMenuItems = new List <ToolStripMenuItem> { CollectionToolStripMenuItem, JavaScriptStripMenuItem }; MultiTabManger.Init(tabView, parentMenuItems); //MultiTab固定项目的初始化 var serverStatusCtl = new CtlServerStatus() { IsFixedItem = true, SelectObjectTag = "[ServerStatus]", BindingMenu = StatusToolStripMenuItem }; MultiTabManger.AddView(serverStatusCtl, GuiConfig.IsUseDefaultLanguage ? "Status" : GuiConfig.GetText("MainMenu.MangtStatus"), string.Empty); //刷新 RefreshToolStripMenuItem_Click(sender, e); serverStatusCtl.RefreshGui(); MultiTabManger.SelectTab("[ServerStatus]"); //委托设置 trvsrvlst.NodeMouseClick += trvsrvlst_NodeMouseClick; trvsrvlst.NodeMouseDoubleClick += (x, y) => ViewDataObj(); ViewDataToolStripMenuItem.Click += (x, y) => ViewDataObj(); trvsrvlst.KeyDown += trvsrvlst_KeyDown; tabView.SelectedIndexChanged += tabView_SelectedIndexChanged; //CommandHelper.RunCommandComplete += CommandLog; //长时间操作时候,实时提示进度在状态栏中 lblAction.Text = string.Empty; MongoHelper.ActionDone += (x, y) => { //1.lblAction 没有InvokeRequired //2.DoEvents必须 lblAction.Text = y.Message; Application.DoEvents(); }; if (trvsrvlst.Nodes.Count > 0) { trvsrvlst.SelectedNode = trvsrvlst.Nodes[0]; } }
public static void CreateUI(RibbonPanel ribbonPanel) { var buttonData = NewPushButtonData <CommandGrasshopperSolver, Availability>("Solver"); Button = ribbonPanel.AddItem(buttonData) as PushButton; if (Button is object) { Button.Visible = PlugIn.PlugInExists(PluginId, out bool _, out bool _); RefreshUI(); } }
public void StartTheExplorerWhenInitializingThePlugin() { Sentry pluginSentry = Monitor.Interactions(typeof(PlugIn)); Isolate.WhenCalled(() => VisualStudio.Solution).WillReturn(""); Isolate.WhenCalled(() => VisualStudio.HasASolutionOpened).WillReturn(true); Isolate.WhenCalled(() => VisualStudio.HasAnActiveTextView).WillReturn(true); PlugIn plugin = new PlugIn(); Approvals.Approve(pluginSentry.Report); }
public static void TestAdapterDesign() { IElectricalAppliance fridge = new Fridge(); PlugIn plugIn = new PlugIn(); plugIn.PuluginElectricalAppliance(fridge); IElectricalAppliance telephon = new TelefonEEAAdapter(new Samsung()); plugIn.PuluginElectricalAppliance(telephon); }
public void StartTheExplorerWhenInitializingThePlugin() { Sentry pluginSentry = Monitor.Interactions(typeof(PlugIn)); Isolate.WhenCalled(() => VisualStudio.Solution).WillReturn(""); Isolate.WhenCalled(() => VisualStudio.HasASolutionOpened).WillReturn(true); Isolate.WhenCalled(() => VisualStudio.HasAnActiveTextView).WillReturn(true); PlugIn plugin = new PlugIn(); Approvals.Approve(pluginSentry.Report); }
/// <summary> /// 启动类 /// </summary> /// <param name="application"></param> /// <returns></returns> public IPlugIn Run(IEmrHost application) { if (application == null) { throw new ArgumentNullException("application"); } FormMainPage frmStar = new FormMainPage(application); PlugIn plg = new PlugIn(this.GetType().ToString(), frmStar); return(plg); }
/// <summary> /// Wird aktiviert, wenn eine Auswahl betätigt wird. /// </summary> /// <param name="sender">Wird ignoriert.</param> /// <param name="e">Wird ignoriert.</param> private void TaskSelected(object sender, EventArgs e) { // Attach to selection RadioButton button = (RadioButton)sender; // Remember the selection CurrentSelection = button.Tag.GetType(); CurrentPlugIn = (PlugIn)button.Tag; // Inform parent CheckButtons(); }
public static void CreateUI(RadioButtonGroup radioButtonGroup) { var buttonData = NewToggleButtonData <CommandGrasshopperPreviewOff, Availability>("Off"); if (radioButtonGroup.AddItem(buttonData) is ToggleButton pushButton) { pushButton.ToolTip = "Don't draw any preview geometry"; pushButton.Image = ImageBuilder.LoadBitmapImage("RhinoInside.Resources.GH.Toolbar.Preview_Off_24x24.png", true); pushButton.LargeImage = ImageBuilder.LoadBitmapImage("RhinoInside.Resources.GH.Toolbar.Preview_Off_24x24.png"); pushButton.Visible = PlugIn.PlugInExists(PluginId, out bool loaded, out bool loadProtected); } }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var ps = PlugIn.Settings.Keys; var lconly = (from s in ps where s.ToLowerInvariant().Equals(s) select s).ToList(); foreach (var lc in lconly) { PlugIn.Settings.DeleteItem(lc); } PlugIn.SaveSettings(); return(Result.Nothing); }
public void HideOverlayWhenTextHasChanged() { Sentry pluginSentry = Monitor.Interactions(typeof(PlugIn)); Isolate.WhenCalled(() => VisualStudio.HasASolutionOpened).WillReturn(false); PlugIn plugin = new PlugIn(); plugin.WhenTextChanges(null); Approvals.Approve(pluginSentry.Report); }
public void HideOverlayWhenTextHasChanged() { Sentry pluginSentry = Monitor.Interactions(typeof(PlugIn)); Isolate.WhenCalled(() => VisualStudio.HasASolutionOpened).WillReturn(false); PlugIn plugin = new PlugIn(); plugin.WhenTextChanges(null); Approvals.Approve(pluginSentry.Report); }
public void ShowOverlayWhenResultsUpdated() { Sentry pluginSentry = Monitor.Interactions(typeof(PlugIn)); Isolate.WhenCalled(() => VisualStudio.Solution).WillReturn(""); Isolate.WhenCalled(() => VisualStudio.HasASolutionOpened).WillReturn(true); Isolate.WhenCalled(() => VisualStudio.HasAnActiveTextView).WillReturn(true); PlugIn plugin = new PlugIn(); plugin.WhenResultsUpdated(); Approvals.Approve(pluginSentry.Report); }
public void StartTheServiceWhenASolutionIsOpen() { Sentry pluginSentry = Monitor.Interactions(typeof(PlugIn)); Isolate.WhenCalled(() => VisualStudio.HasASolutionOpened).WillReturn(false); Isolate.WhenCalled(() => VisualStudio.HasAnActiveTextView).WillReturn(true); Isolate.WhenCalled(() => VisualStudio.Solution).WillReturn(""); PlugIn plugin = new PlugIn(); plugin.AfterOpeningSolution(); Approvals.Approve(pluginSentry.Report); }
/// <summary> /// 初始化 /// </summary> /// <param name="container"> 服务组件容器 </param> /// <param name="serviceType"> 服务组件类型 </param> /// <param name="value"> 服务组件 </param> /// <param name="plugIn"> 插件 </param> /// <exception cref="ArgumentNullException"> <paramref name="container" /> is <see langword="null" />. </exception> /// <exception cref="ArgumentNullException"> <paramref name="serviceType" /> is <see langword="null" />. </exception> /// <exception cref="ArgumentException"><paramref name="serviceType"/> 为 <seealso cref="ServiceItem"/> 类型.</exception> public ServiceItem(IServiceContainer container, Type serviceType, object value, PlugIn plugIn) { if (container == null) { throw new ArgumentNullException(nameof(container)); } if (serviceType == null) { throw new ArgumentNullException(nameof(serviceType)); } if (serviceType == typeof(ServiceItem)) { throw new ArgumentException($"{nameof(serviceType)}不能是{nameof(ServiceItem)}类型"); } Container = container; ServiceType = serviceType; PlugIn = plugIn; _value = value; }
/// <summary> /// Loads the plug-in's desired data into the plug-in. /// </summary> /// <param name="plugin">The plug-in to load data into.</param> protected void LoadDesiredPlugInData( PlugIn plugin ) { ArrayList data = new ArrayList(); PlugIn.DesiredData d; for ( int i = 0; i < plugin.GetDesiredData().Count; i++ ) { d = (PlugIn.DesiredData) plugin.GetDesiredData()[i]; switch ( d ) { case PlugIn.DesiredData.Lighting: data.Add( _viewport.Device.Lights[0].Direction ); break; } } plugin.SetReceivedData( data ); }
public LazyDoozer(PlugIn plugIn, Properties properties) { PlugIn = plugIn; Properties = properties; }
/// <summary> /// 获取插件的服务类型 <see cref="Type"/>, 默认 <code>plugIn.GetMetadata<Type>("ServiceType")</code> /// </summary> /// <param name="plugIn"> 插件 </param> /// <param name="value"> 插件值 </param> /// <returns></returns> protected virtual Type GetServiceType(PlugIn plugIn, object value) => plugIn.GetMetadata<Type>("ServiceType");