==============================================================================
FuseminderPlus
Jeff Peters <jeff@grokfusebox.com>
(c) 2000-2002 Jeffrey S. Peters, All Rights Reserved
==============================================================================
--------------------------------------
Introduction
--------------------------------------
FuseminderPlus is a tool designed to save you lots of drudge work in developing 
Fusebox 3 applications.  

If you follow the FLiP methodology I advocate (see "Fusebox: Developing 
ColdFusion Applications", NewRiders 2002 for more information), you use a mind 
mapping tool such as MindMapper+ to design the architecture of your application. 
Once the mind map is completed, though, there's a lot of drudge work involved
in transforming the mind map into the directories and files you need to get
started on coding the application.  This is where Fuseminder comes in.

Fuseminder reads a text file generated by a mind mapping application and 
transforms it into the directories and files it represents.  The mapping
style expected by Fuseminder is shown in the FuseminderPlusSampleApp.twd file,
which is a MindMapper+ 3 file.  If you don't use a mind mapping package,
you can see what the outline looks like in FuseminderPlusSampleApp.txt.

--------------------------------------
Package Files
--------------------------------------
The following files are included in the FuseminderPlus distribution:

- FuseminderPlusSampleapp.twd: the sample application's MindMapper+ file
- FuseminderPlusSampleapp.txt: the outline file produced by MindMapper+
- FuseminderPlus.cfm: the FuseminderPlus custom tag
- fm2Call.cfm: an example of how to call FuseminderPlus

--------------------------------------
Installation
--------------------------------------
Installation of FuseminderPlus is very simple.  Just drop the FuseminderPlus.cfm
file into the \CFusion\CustomTags directory of your development machine.
You're now ready to call FuseminderPlus to task.  This is done by using a call
as shown in fm2Call.cfm.

--------------------------------------
Attributes
--------------------------------------
There are several attributes you can use when calling FuseminderPlus.

outlineFile - this required attribute specifies the name of the outline file
              FuseminderPlus will read.
location - this allows you to specify the path where FuseminderPlus should
           build the Fusebox application framework.  Default is the 
           directory FuseminderPlus is called from (the location of fm2Call.cfm,
           if you're running the sample).
verbose - Reports processing to the screen.  Default is True.
indenter - The string used as an indenter in the outline file.  Default is Tab.
mapper - Allows the use of Visual Mind or MindMapper+ without modification
         of the outline file.  Default is "VM"; also accepts "MM".
         
--------------------------------------                                                
Notation in the Mind Map
--------------------------------------
The original Fuseminder was designed to process mind maps for two-tier 
Fusebox applications.  FuseminderPlus allows the creation of n-tier nested
applications, in compliance with Fusebox 3.  In order to facilitate this
level of flexibility, Fuseminder looks for prefixes on each node of the
mind map.  These prefixes are explained below, and can be seen in action
in the sample mind map.

ct:  Defines a circuit node.
fa:  Defines a fuseaction node.  The fuseaction is constructed in the
     fbx_switch.cfm file for its circuit.
ff:  Defines a fuse file node.  The contents of the Notes pane are written to
     the file name specified after the colon.  The fuse file is written to the
     circuit directory that contains its fuseaction.
lo:  Defines a layout file node.  A definition for the file name specified 
     after the colon is added to the circuit's fbx_layouts.cfm file.
df:  Defines a direct file node.  The contents of the Notes pane are written
     to the file name specified after the colon.  The file is written to the
     circuit directory for the df node's parent circuit.  You can specify
     any name you want for a df node; it is most often used for 
     fbx_settings.cfm.  You could also use a df node to create the FEX-specific
     fbx_errorCatch.cfm file.

--------------------------------------                                                
Running FuseminderPlus                         
--------------------------------------

All you need to do is browse a template like fmpCall.cfm; Fuseminder does
the rest.  For a step-by-step viewlet of the sample application, visit
http://www.grokfusebox.com/viewlets/fuseminderPlus_viewlet.html

--------------------------------------                                                
Questions and Answers
--------------------------------------
If you have questions about FuseminderPlus, feel free to drop me a line:
jeff@grokfusebox.com

Happy Fuseboxing!
- Jeff Peters
July 2002