ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From meta...@locus.apache.org
Subject cvs commit: jakarta-ant/src/antidote/docs new-module-howto.html
Date Tue, 19 Dec 2000 03:55:08 GMT
metasim     00/12/18 19:55:08

  Added:       src/antidote/docs new-module-howto.html
  Log:
  Added (draft) instructions for people interesting in implementing new
  modules for Antidote.
  
  Revision  Changes    Path
  1.1                  jakarta-ant/src/antidote/docs/new-module-howto.html
  
  Index: new-module-howto.html
  ===================================================================
  <!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>
  
  
  

Mime
View raw message