You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

module.html 9.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html lang="en">
  3. <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
  4. <head>
  5. <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  6. <title>Apache Ant - Module HOW-TO</title>
  7. <link type="text/css" href="../../page.css" rel="stylesheet">
  8. <meta name="author" content="Simeon H. K. Fitch">
  9. <meta name="email" content="simeon@fitch.net">
  10. <meta name="author" content="Christoph Wilhelms">
  11. <meta name="email" content="christoph.wilhelms@t-online.de">
  12. </head>
  13. <body>
  14. <p class="navpath">
  15. <script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
  16. </p>
  17. <div class="logobar">
  18. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  19. <tr>
  20. <td align="left"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></td>
  21. <td align="center" width="100%"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></td>
  22. <td align="right">
  23. <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
  24. <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  25. <tr>
  26. <td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td>
  27. </tr>
  28. <tr>
  29. <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
  30. <td nowrap="nowrap" class="searchcaption">
  31. <input name="q" type="hidden">
  32. <input size="15" id="query" type="text">
  33. <img height="1" width="5" alt="" src="../../images/spacer.gif">
  34. <input name="Search" value="Search" type="submit">
  35. <br>
  36. the Apache Ant site
  37. </td>
  38. <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
  39. </tr>
  40. <tr>
  41. <td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td>
  42. <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
  43. <td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td>
  44. </tr>
  45. </table>
  46. </form>
  47. </td>
  48. </tr>
  49. </table>
  50. </div>
  51. <div class="tab">
  52. <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  53. <tr>
  54. <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
  55. <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
  56. <tr>
  57. <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../../index.html"><font size="2" face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../../images/tab-right.gif"></td>
  58. </tr>
  59. </table>
  60. </td>
  61. <td width="8"><img alt="" height="5" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
  62. <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
  63. <tr>
  64. <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b>Projects</b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../../images/tabSel-right.gif"></td>
  65. </tr>
  66. </table>
  67. </td>
  68. </tr>
  69. </table>
  70. </div>
  71. <div class="bluebar"></div>
  72. <div class="menucontainer">
  73. <div class="menu">
  74. <ul>
  75. <li class="menuheader">Projects
  76. <ul>
  77. <li>
  78. <a href="../../projects/index.html">Welcome</a>
  79. </li>
  80. </ul>
  81. </li>
  82. </ul>
  83. </div>
  84. <img style="float: left" height="10" width="10" border="0" alt="" src="../../images/menu-left.gif">
  85. <img style="float: right" height="10" width="10" border="0" alt="" src="../../images/menu-right.gif">
  86. </div>
  87. <div class="lightbluebar">&nbsp;</div>
  88. <div class="main">
  89. <div class="content">
  90. <h1 class="title">Module HOW-TO</h1>
  91. <h3 class="section">
  92. <a name="Introduction"></a>
  93. Introduction
  94. </h3>
  95. <p>The purpose of this document is to provide an overview of the
  96. basic steps one must undertake to add a new module to
  97. Antidote. Please see <a href="./design.html">The Antidote
  98. Design Overview</a> for information on what a module is and how it
  99. fits into Antidote. If you've already got all that, then read
  100. on!
  101. </p>
  102. <p>NB: <i>Please submit updates and criticisms to this, particularly
  103. areas that were unclear, missing, or difficult to follow.</i>
  104. </p>
  105. <h3 class="section">
  106. <a name="Step by step"></a>
  107. Step by step
  108. </h3>
  109. <h2>1) Specialize <code>org.apache.tools.ant.gui.core.AntModule</code></h2>
  110. <p>All modules must inherit from the <code>AntModule</code>
  111. class. This will probably irritate some of you, but it essentially
  112. enforces inheritance from <code>javax.swing.JComponent</code> and
  113. provides encapsulated handling of the <code>AppContext</code> instance
  114. that is so important to this class.
  115. </p>
  116. <p>Your module is required to implement the
  117. <code>AntModule.contextualize(AppContext)</code> method. The first
  118. thing this method should do is call
  119. <code>AntModule.setContext(AppContext)</code>, and then it is safe for
  120. it to begin constructing its display, using whatever resources it
  121. needs from the given <code>AppContext</code> instance. Think of this
  122. in a similar manner to <code>Applet.init()</code> or
  123. <code>Servlet.init()</code>.
  124. </p>
  125. <h2>2) Update
  126. <code>org/apache/tools/ant/gui/resources/antidote.properties</code></h2>
  127. <h3>2a) Externalize All Displayable Strings</h3>
  128. <p>All displayable strings must be externalized to the
  129. <code>antidote.properties</code> file, and looked up via the
  130. <code>AppContext.getResources()</code> method after the
  131. <code>AntModule.contextualize()</code> method has been called. Follow
  132. the naming convention currently used in the properties file and
  133. you should have to problems. This task should be done
  134. <b>during</b> development of your module. Under no circumstances
  135. should your module be submitted or committed without this task
  136. being completed. Remember that Antidote has an international
  137. audience.
  138. </p>
  139. <h3>2b) Add Module to List of Auto-Loaded Modules</h3>
  140. <p>Look for the properties with the format
  141. <code>org.apache.tools.ant.gui.Antidote.xxx.modules</code> where
  142. <code>xxx</code> is one of {left | right | top | bottom}. Depending on
  143. where you want your module to appear, and the order that you want
  144. it to appear in relationship to the other modules, add the class
  145. name of your module appropriately. If multiple modules are listed
  146. for a single property (via a comma delimited list), then each
  147. module will have it's own tab in a <code>javax.swing.JTabbedPane</code>.
  148. </p>
  149. <p>NB:<i>This goofy way of constructing the main screen will probably
  150. change to something much more general (but not as general as, say
  151. <a href="http://www.alphaworks.ibm.com/tech/bml">BML</a>).</i>
  152. </p>
  153. <h2>Run it!</h2>
  154. <p>That should be all you need to do, at least to get your module
  155. plugged in. Check out the source code for
  156. <code>ProjectNavigator</code> and <code>PropertyEditor</code> for module
  157. examples that use the various facilities of the Antidote
  158. framework.
  159. </p>
  160. </div>
  161. </div>
  162. <p class="copyright">
  163. Copyright &copy; 2000-2005&nbsp;The Apache Software Foundation. All rights reserved.
  164. <script type="text/javascript" language="JavaScript"><!--
  165. document.write(" - "+"Last Published: " + document.lastModified);
  166. // -->
  167. </script>
  168. </p>
  169. </body>
  170. </html>