|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
- <head>
- <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Apache Ant - Module HOW-TO</title>
- <link type="text/css" href="../../page.css" rel="stylesheet">
- <meta name="author" content="Simeon H. K. Fitch">
- <meta name="email" content="simeon@fitch.net">
- <meta name="author" content="Christoph Wilhelms">
- <meta name="email" content="christoph.wilhelms@t-online.de">
- </head>
-
- <body text="#000000" bgcolor="#ffffff">
- <table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../../images/spacer.gif"><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../../breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
- </tr>
- <tr>
- <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../../images/spacer.gif"></td>
- </tr>
- </table>
-
- <table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td bgcolor="#294563"><a href="http://ant.apache.org/"><img border="0" alt="Apache Ant site" src="../../images/group-logo.gif"></a></td><td width="100%" align="center" bgcolor="#294563"><a href="http://ant.apache.org/"><img alt="Apache Ant logo" border="0" src="../../images/project-logo.gif"></a></td><td valign="top" rowspan="2" bgcolor="#294563">
- <form target="_blank" onsubmit="q.value = query.value + ' site:ant.apache.org'" action="http://www.google.com/search" method="get">
- <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
- <tr>
- <td colspan="3"><img height="10" width="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td><td nowrap="nowrap"><input name="q" type="hidden"><input size="15" id="query" type="text"><img height="1" width="5" alt="" src="../../images/spacer.gif"><input name="Search" value="Search" type="submit">
- <br>
- <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
- the Apache Ant site
-
-
- </font></td><td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td><img alt="" border="0" height="10" width="9" src="../../images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../../images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../../images/search-right.gif"></td>
- </tr>
- </table>
- </form>
- </td><td bgcolor="#294563"><img height="10" width="10" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td valign="bottom" bgcolor="#294563" colspan="2">
- <div class="tab">
- <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="5"><img alt="" height="8" width="8" src="../../images/spacer.gif"></td><td valign="bottom">
- <table summary="non selected tab" style="height: 1.4em" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <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>
- </tr>
- </table>
- </td>
- <td width="8"><img alt="" height="5" width="8" src="images/spacer.gif"></td><td valign="bottom">
- <table summary="selected tab" style="height: 1.5em" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <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>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </div>
-
- </td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../../images/spacer.gif"></td>
- </tr>
- </table>
- <table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td valign="top">
- <table summary="menu" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td rowspan="3" valign="top">
- <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td bgcolor="#294563"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif"> </font></td>
- </tr>
- <tr>
- <td bgcolor="#294563"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- </table>
- </td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
- <div class="menu"><ul>
- <li><font color="#CFDCED">Projects</font>
- <ul>
- <li>
- <a href="../../projects/index.html">Welcome</a>
- </li>
- </ul>
- </li>
- <li><font color="#CFDCED">Antidote</font>
- <ul>
- <li>
- <a href="../../projects/antidote/index.html">About Antidote</a>
- </li>
- <li>
- <a href="../../projects/antidote/design.html">Design Overview</a>
- </li>
- <li>
- <span class="sel"><font color="#ffcc00">Module HOW-TO</font></span>
- </li>
- </ul>
- </li>
- </ul></div>
- </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../../images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../../images/menu-right.gif"></td>
- </tr>
- <tr>
- <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- </table>
- </td><td valign="top" width="100%">
- <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
- </font><img width="10" height="8" alt="" src="../../images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
-
- </font><img width="10" height="8" alt="" src="../../images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td>
- </tr>
- <tr>
- <td align="left" width="10"><img width="10" height="1" alt="" src="../../images/spacer.gif"></td><td align="left" width="100%">
- <div class="content">
- <table class="title">
- <tr>
- <td valign="middle">
- <h1>Module HOW-TO</h1>
- </td>
- </tr>
- </table>
- <br/>
- <table class="nowrap" border="0" cellspacing="0" cellpadding="2" width="100%">
- <tr><td bgcolor="#294563"><font color="#ffffff"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr>
- </table>
- <p>The purpose of this document is to provide an overview of the
- basic steps one must undertake to add a new module to
- Antidote. Please see <a href="./design.html">The Antidote
- Design Overview</a> for information on what a module is and how it
- fits into Antidote. If you've already got all that, then read
- on!
- </p>
- <p>NB: <i>Please submit updates and criticisms to this, particularly
- areas that were unclear, missing, or difficult to follow.</i>
- </p>
- <br/>
- <table class="nowrap" border="0" cellspacing="0" cellpadding="2" width="100%">
- <tr><td bgcolor="#294563"><font color="#ffffff"><a name="Step by step"><strong>Step by step</strong></a></font></td></tr>
- </table>
- <h2>1) Specialize <code>org.apache.tools.ant.gui.core.AntModule</code></h2>
- <p>All modules must inherit from the <code>AntModule</code>
- class. This will probably irritate some of you, but it essentially
- enforces inheritance from <code>javax.swing.JComponent</code> and
- provides encapsulated handling of the <code>AppContext</code> instance
- that is so important to this class.
- </p>
- <p>Your module is required to implement the
- <code>AntModule.contextualize(AppContext)</code> method. The first
- thing this method should do is call
- <code>AntModule.setContext(AppContext)</code>, and then it is safe for
- it to begin constructing its display, using whatever resources it
- needs from the given <code>AppContext</code> instance. Think of this
- in a similar manner to <code>Applet.init()</code> or
- <code>Servlet.init()</code>.
- </p>
- <h2>2) Update
- <code>org/apache/tools/ant/gui/resources/antidote.properties</code></h2>
- <h3>2a) Externalize All Displayable Strings</h3>
- <p>All displayable strings must be externalized to the
- <code>antidote.properties</code> file, and looked up via the
- <code>AppContext.getResources()</code> method after the
- <code>AntModule.contextualize()</code> method has been called. Follow
- the naming convention currently used in the properties file and
- you should have to problems. This task should be done
- <b>during</b> development of your module. Under no cercumstances
- should your module be submitted or committed without this task
- being completed. Remember that Antidote has an international
- audience.
- </p>
- <h3>2b) Add Module to List of Auto-Loaded Modules</h3>
- <p>Look for the properties with the format
- <code>org.apache.tools.ant.gui.Antidote.xxx.modules</code> where
- <code>xxx</code> is one of {left | right | top | bottom}. Depending on
- where you want your module to appear, and the order that you want
- it to appear in relationship to the other modules, add the class
- name of your module appropriately. If multiple modules are listed
- for a single property (via a comma delimited list), then each
- module will have it's own tab in a <code>javax.swing.JTabbedPane</code>.
- </p>
- <p>NB:<i>This goofy way of constructing the main screen will probably
- change to something much more general (but not as general as, say
- <a href="http://www.alphaworks.ibm.com/tech/bml">BML</a>).</i>
- </p>
- <h2>Run it!</h2>
- <p>That should be all you need to do, at least to get your module
- plugged in. Check out the source code for
- <code>ProjectNavigator</code> and <code>PropertyEditor</code> for module
- examples that use the various facilities of the Antidote
- framework.
- </p>
-
-
- </div>
- </td><td width="10"><img width="10" height="4" alt="" src="../../images/spacer.gif"></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
- <tr>
- <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../../images/spacer.gif"><a href="../../images/label.gif"></a><a href="../../images/page.gif"></a><a href="../../images/chapter.gif"></a><a href="../../images/chapter_open.gif"></a><a href="../../images/current.gif"></a><a href="/favicon.ico"></a></td>
- </tr>
- <tr>
- <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright © 2000-2003 The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
- document.write(" - "+"Last Published: " + document.lastModified);
- // --></script></font></td>
- </tr>
- </table>
- </body>
- </html>
-
-
-
-
-
-
-
-
-
|