
A development plan (not very detailed) for implementing
new features and some of the dependencies between tasks.
========================================================

8 - Improvments in DB Component.
    + class.OracleCnn.php etc
    + <If> inside <Recordset>
    + Multiple Connections and Tag <Connection>
    + TableRS

9 - Misc (small changes)
    + WebApp::GoTo()
    + Multiple Language Support for Framework Messages. 

11 - Update and improve the model of the framework 
     (with UML and Umbrello).

12 - Update the documentation of the framework with all the new
     changes up to this moment. These changes are in the file
     'web_app/doc/changes.html'.

- 13 - Parse and process the templates using a DOM XML parser.
     This may require some changes in the structure of the
     classes of the 'parser' package.

? 14 - Implement the <TagDefinition> and any other changes
     related to XML transformation and display.


    Web Development Environment
    ---------------------------
    is a web based tool (web application) that will be written using
    phpWebApp. This tool will be used to construct, modify and
    collaboratively develop web applications that are based on 
    phpWebApp. All this development will be done from the browser,
    using a web interface.

16 - Update and improve the webboxes of the framework (that are
     located at 'web_app/boxes'), like: folderListing, fileViewer,
     codeView, editMenus, etc. with the new changes in the
     framework. (Warm up task)

17 - Implement the 'folderManager' webox, wich will be like
     'folderListing' but will also have the possibility for
     creating and deleting files and folders. It can also upload
     or download a file (that can be image, text etc.) or 
     a folder and all its subfolders. This tool will be a part 
     of WDE (Web Development Environment).

18 - Implement the collapse/expand display of the <WebObject>s
     and <Include>s (where each webbox and each file included
     has a frame around it, to make it more visible). This tool
     will be a part of WDE (Web Development Environment).

19 - Implement a tree view of the structure of a template, which
     displays at each node the tags reckognised by the framework,
     like <WebObject>, <WebBox>, <Repeat>, <If>, <Include>, etc,
     so that the user can be able to select each of them.
     If each branch of the tree can be expanded and collapsed
     that will be better, because finding a certain tag will
     be easier. (This tool will be integrated in WDE).

20 - Implement a list view of all the <WebBox>-es, <WebClass>-es
     and <TagDefinition>-s of the application. (This will be 
     integrated in WDE).

21 - Implement a WebBox that can edit webbox-es (with all their
     components: HTML, PHP, JS, DB, StateChart, Test, Doc, etc.)
     and other files as well (that can be HTML files, CSS, JS,
     PHP, etc.). (This will be integrated in WDE).

22 - Implement a first version of the WDE by integrating the above
     tools.

23 - Add password authentication to WDE (which will be optional).
     This will require an administrator and user administration.

24 - Implement a 'library' WebClass, then implement the WebBoxes
     'toolBox', 'codeLibrary', 'templateLibrary', 'imgLibrary',
     etc. that extend 'library'. Integrate them in WDE.

25 - Integrate the WDE with CVS, so that multiple developers
     can work concurrently. For each developer WDE checkes out
     from CVS a local working copy and makes the changes there.
     Also the preview is done from this local copy of the 
     application. The interface of the WDE will include some
     CVS functions like update, commit, etc.

26 - Separate the public copy of the application from the
     working copy. All the changes are done on the working
     copy, and the public copy is updated only by the
     administrator, or application manager. The application 
     manager can also create several branches and assign
     which developer will work on which branch.

27 - Add access rights to WDE, so that the application 
     manager can specify which parts of the application can
     be modified by which users or groups of users.
     Parts of the application can be specified in terms of
     folders, files or webboxes.
