Implement IUModelPlugIn Interface

www.altova.com Print this Topic Previous Page Up One Level Next page

Home >  UModel Programmer's Reference > UModel IDE Plug-Ins > How to Create a UModel IDE Plug-In >

Implement IUModelPlugIn Interface

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
  }
}


© 2019 Altova GmbH