예제 #1
0
        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");
     }
 }
예제 #3
0
        public DrectSoft.FrameWork.IPlugIn Run(DrectSoft.FrameWork.WinForm.Plugin.IEmrHost host)
        {
            PlugIn plg = new PlugIn(this.GetType().ToString(), this);

            m_host = host;
            return(plg);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        //xtraTabPageMedicine

        public IPlugIn Run(FrameWork.WinForm.Plugin.IEmrHost host)
        {
            IPlugIn plg = new PlugIn(this.GetType().ToString(), this);

            m_app = host;

            return(plg);
        }
예제 #6
0
        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);
        }
예제 #7
0
        public DrectSoft.FrameWork.IPlugIn Run(IEmrHost host)
        {
            PlugIn plg = new PlugIn(this.GetType().ToString(), this);

            m_App = host;

            return(plg);
        }
예제 #8
0
        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);
        }
예제 #9
0
    /// <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
    }
예제 #10
0
        //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);
        }
예제 #11
0
 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);
 }
예제 #12
0
        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);
        }
예제 #13
0
        public IPlugIn Run(IEmrHost host)
        {
            FormMainConsultation form = new FormMainConsultation(host);

            m_App = host;
            PlugIn plg = new PlugIn(this.GetType().ToString(), form);

            return(plg);
        }
예제 #14
0
        /// <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
                );
        }
예제 #15
0
        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);
        }
예제 #16
0
        /// <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 _);
            }
        }
예제 #18
0
        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);
        }
예제 #19
0
        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);
        }
예제 #20
0
        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();
                    }
                }
            }
        }
예제 #21
0
        /// <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();
            };
        }
예제 #22
0
        /// <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);
		}
예제 #25
0
        public static void TestAdapterDesign()
        {
            IElectricalAppliance fridge = new Fridge();
            PlugIn plugIn = new PlugIn();

            plugIn.PuluginElectricalAppliance(fridge);

            IElectricalAppliance telephon = new TelefonEEAAdapter(new Samsung());

            plugIn.PuluginElectricalAppliance(telephon);
        }
예제 #26
0
        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);
        }
예제 #27
0
        /// <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);
        }
예제 #28
0
        /// <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();
        }
예제 #29
0
        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);
		}
예제 #32
0
        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);
		}
예제 #35
0
 /// <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;
 }
예제 #36
0
        /// <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 );
        }
예제 #37
0
 public LazyDoozer(PlugIn plugIn, Properties properties)
 {
     PlugIn = plugIn;
     Properties = properties;
 }
예제 #38
0
 /// <summary>
 /// 获取插件的服务类型 <see cref="Type"/>, 默认 <code>plugIn.GetMetadata&lt;Type&gt;("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");