UModel IDE plug-ins must implement the IUModelPlugIn interface. The code below shows a simple implementation of this interface. It adds a menu item and a separator (available with UModel) to the Edit menu. Clicking the menu item will display a message box with the text "Hello, World!".
Note: | Since this sample displays a message box, ensure that your C# project also references System.Windows.Forms. To do this, right-click References in Solution Explorer, select Add Reference, and browse for the System.Windows.Forms assembly). |
using System; using System.Collections.Generic; using System.Text; using UModelPlugInLib; namespace HelloWorldPlugIn { public class MyHelloWorldUModelPlugIn : IUModelPlugIn { #region IUModelPlugIn Members public string GetDescription() { return "HelloWorldPlugIn;HelloWorldPlugIn demonstrates a simple implementation of an IDE plug-in for UModel"; } public string GetUIModifications() { return "<ConfigurationData>" + "<Modifications>" + // add "Hello World..." to Edit menu "<Modification>" + "<Action>Add</Action>" + "<UIElement type=\"MenuItem\">" + "<ID>1</ID>" + "<Name>Hello world...</Name>" + "<Info>My hello world</Info>" + "<Place>0</Place>" + "<MenuID>101</MenuID>" + "<Parent>:Edit</Parent>" + "</UIElement>" + "</Modification>" + // add Separator to Edit menu "<Modification>" + "<Action>Add</Action>" + "<UIElement type=\"MenuItem\">" + "<ID>0</ID>" + "<Place>1</Place>" + "<MenuID>101</MenuID>" + "<Parent>:Edit</Parent>" + "</UIElement>" + "</Modification>" + // finish modification description "</Modifications>" + "</ConfigurationData>"; } public void OnInitialize(object pUModel) { // before processing DDE or batch commands } public void OnRunning(object pUModel) { // DDE or batch commands are processed; application is fully initialized } public void OnShutdown(object pUModel) { // application will shutdown; release all unused objects } public UModelUpdateAction OnUpdateCommand(int nID, object pUModel) { if (nID == 1) return UModelUpdateAction.UModelUpdateAction_Enable; return UModelUpdateAction.UModelUpdateAction_Disable; } public void OnCommand(int nID, object pUModel) { System.Windows.Forms.MessageBox.Show("Hello world!"); } #endregion } } |