| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html lang="en"> |
| <head> |
| <meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2017. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." > |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <meta http-equiv="Content-Style-Type" content="text/css"> |
| <link rel="STYLESHEET" href="../book.css" charset="ISO-8859-1" type="text/css"> |
| <script language="JavaScript" src="PLUGINS_ROOT/org.eclipse.help/livehelp.js" type="text/javascript"></script> |
| <title>Contributing a sample handler</title> |
| </head> |
| <body> |
| |
| <h2>Contributing a sample handler</h2> |
| |
| <p> |
| We will now contribute a very basic status handler just to illustrate the steps |
| needed to contribute a status handler implementation to the Workbench. To do this:</p> |
| |
| <ol> |
| <li>use the <em>org.eclipse.ui.statusHandlers</em> extension point to register |
| a status handler implementation and bind it to your product</li> |
| <li>extend the <em>org.eclipse.ui.statushandlers.AbstractStatusHandler</em> |
| class and use as the <b>class</b> attribute in the above extension point contribution</li> |
| <li>run your Eclipse based product with the correct product id</li> |
| </ol> |
| |
| |
| <p> |
| Here is the <em>org.eclipse.ui.statusHandlers</em> extension point markup:</p> |
| |
| <pre> |
| <extension point="org.eclipse.ui.statusHandlers"> |
| <statusHandler |
| class="org.eclipse.ui.statushandlers.SampleStatusHandler" |
| id="sampleStatusHandler"/> |
| <statusHandlerProductBinding |
| handlerId="sampleStatusHandler" |
| productId="productId"> |
| </statusHandlerProductBinding> |
| </extension> |
| </pre> |
| |
| |
| <p> |
| A <em>statusHandler</em> is registered with the Workbench. The <em>statusHandlerProductBinding</em> |
| contribution tells the Workbench that the status handler we just defined is |
| bound to our product with the id "productId". The status handling facility |
| uses lazy initialization, so the handler will be instantiated during first access |
| to the facility in the product. |
| </p> |
| |
| <p> |
| The class defined by the class attribute extends <code>org.eclipse.ui.statushandlers.AbstractStatusHandler</code>. |
| The following is sample code that simply writes to the console the message set in the status adapter. |
| </p> |
| <pre> |
| public void handle(final StatusAdapter statusAdapter, int style) { |
| System.out.println(statusAdapter.getStatus().getMessage()); |
| } |
| </pre> |
| |
| |
| <p> |
| When you run the product with the id defined in the statusHandlerProductBinding |
| you will start to use your product handler. For example, if you are self hosting, |
| create a new runtime-workbench launch configuration, choose the "Run a product" |
| option, and select <em>productId</em> from the dropdown. |
| </p> |
| |
| </body> |
| </html> |