Browse Source

Added (draft) instructions for people interesting in implementing new

modules for Antidote.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@268375 13f79535-47bb-0310-9956-ffa450edef68
master
metasim 24 years ago
parent
commit
7bfb091f70
1 changed files with 81 additions and 0 deletions
  1. +81
    -0
      src/antidote/docs/new-module-howto.html

+ 81
- 0
src/antidote/docs/new-module-howto.html View File

@@ -0,0 +1,81 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
<HTML>
<HEAD>
<TITLE>Antidote New Module HOWTO</TITLE>
</HEAD>

<BODY>

<H1>Antidote New Module HOWTO</H1>

<P>Version 0.1 (2000/12/18)</P>

<P>Authors:
<A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>
</P>

<H2>Introduction</H2>
<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-overview.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>

<H2>1) Specialize <TT>org.apache.tools.ant.gui.AntModule</TT></H2>

<P>All modules must inherit from the <TT>AntModule</TT>
class. This will probably irritate some of you, but it essentially
enforces inheritance from <TT>javax.swing.JComponent</TT> and
provides encapsulated handling of the <TT>AppContext</TT> instance
that is so important to this class.</P>

<P>Your module is required to implement the
<TT>AntModule.contextualize(AppContext)</TT> method. The first
thing this method should do is call
<TT>AntModule.setContext(AppContext)</TT>, and then it is safe for
it to begin constructing its display, using whatever resources it
needs from the given <TT>AppContext</TT> instance. Think of this
in a similar manner to <TT>Applet.init()</TT> or
<TT>Servlet.init()</TT>.

<H2>2) Update
<TT>org/apache/tools/ant/gui/resources/antidote.properties</TT></H2>

<H3>2a) Externalize All Displayable Strings</H3>

<P>All displayable strings must be externalized to the
<TT>antidote.properties</TT> file, and looked up via the
<TT>AppContext.getResources()</TT> method after the
<TT>AntModule.contextualize()</TT> 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
<TT>org.apache.tools.ant.gui.Antidote.xxx.modules</TT> where
<TT>xxx</TT> 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 <TT>javax.swing.JTabbedPane</TT>.

<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
<TT>ProjectNavigator</TT> and <TT>PropertyEditor</TT> for module
examples that use the various facilities of the Antidote
framework.</P>

</BODY>
</HTML>

Loading…
Cancel
Save